php7.4のインストール

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です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です