PHPのインストール
PHP7.4をインストールします。
$ sudo apt install php php-imagick php-pear php php-cli php-cgi php-common php-curl php-gd php-json php-mbstring php-mysql php7.4-opcache php-readline php-xml php-xmlrpc php-zip php-gmp libapache2-mod-php php-imap
php.iniの編集
$ sudo nano /etc/php/7.4/apache2/php.ini
; 最大使用メモリ memory_limit = 512M ; エラーメッセージにタグを含めるかどうか。 html_errors = Off ; ブラウザで送信できる最大サイズ post_max_size = 1G ; アップロードできる最大サイズ upload_max_filesize = 1G ;; [Date] ; タイムゾーンを日本に date.timezone = "Asia/Tokyo" ;; [Session] ; 初期化していないセッションIDを受け付けない session.use_strict_mode = 1 ; セッションIDを保存するためにCookieを使用する session.use_cookies = 1 ; セッションIDの保存にCookieのみを使用し、URLに埋め込みません session.use_only_cookies = 1 ; セキュアな接続を通じてのみCookieを送信。HTTPとHTTPSが混在する場合はセッションを継続できないので注意 session.cookie_secure = 1 ; セッション名を指定し、Cookie名として使用されます。アルファベットのみ。 session.name = SRANDCSESSID ;; [mbstring] ; mbstringで使用されるデフォルトの言語設定 mbstring.language = Japanese ; 透過的な文字エンコーディングフィルタを有効にするかどうか mbstring.encoding_translation = Off ; 文字コードの検出の順番 mbstring.detect_order = auto ;; [opcache] ; キャッシュを有効にする opcache.enable=1 ; CLIのキャッシュを有効にする opcache.enable_cli=1 ; 共有メモリのサイズ opcache.memory_consumption=128 ; internされた文字列を格納するために使用されるメモリ量 opcache.interned_strings_buffer=8 ; スクリプトの最大数 opcache.max_accelerated_files=10000 ; 更新時にタイムスタンプをチェックする頻度。0でリクエストごとにチェック opcache.revalidate_freq=60 ; PHPの出力をgzip圧縮 zlib.output_compression = On
PHPが動作しているか確認
phpinfoを表示させます
$ sudo nano /var/www/html/info.php
<?php phpinfo(); ?>
https://mydomain.com/info.phpにアクセスしてphpinfoが表示されることを確認します。
PHP-FPMの設定
Apacheで、mod_phpの代わりにphp-fpm(PHP FastCGIを使うように設定します。
PHP FastCGIモジュールをインストールします。
$ sudo apt install php7.4-fpm
必須のモジュールを有効にします。
$ sudo a2enmod proxy_fcgi setenvif
php-fpmを有効にします。
$ sudo a2enconf php7.4-fpm
mod_phpモジュールを無効にします。
$ sudo a2dismod php7.4
Apache2.4からは、MPM(Multi-Processing Module)はevent MPMが導入されてデフォルトにされているのですが、Ubuntuではprefork MPMがデフォルトにされています。
そこで、MPMをprefork MPMからevent MPMに変更します。
$ sudo a2dismod mpm_prefork
mpm_eventモジュールを有効にします。
$ sudo a2enmod mpm_event
php.ini を、/etc/php/7.4/apache2/php.ini からコピーしてきます。
$ sudo cp /etc/php/7.4/apache2/php.ini /etc/php/7.4/fpm/
apacheを再起動します。
$ sudo systemctl restart apache2
ここで、phpinfoを再度表示させます。
Server APIが「FPM/FastCGI」になっていることと、Configuration File (php.ini) Pathが「/etc/php/7.4/fpm」になっていれば、OKです。