- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-11-07T05:12:14+00:00","default:src128","src128")
#author("2020-11-07T08:41:16+00:00","default:src128","src128")
&tag(CentOS8/PHP);
*目次 [#y7808cf1]
#contents
*関連ページ [#qac0a749]
*参考情報 [#k4d4f1a2]
*基本情報 [#mabb6261]
-[[CentOS 8 標準の Apache と PHP の関係について | ラボラジアン:https://laboradian.com/centos8-apache-php/]]によると、CentOS 8のPHPはデフォルトでphp-fpmと連携するようになっている。
-/etc/php.iniはphp-fpmで有効だが「systemctl restart php-fpm」しないと変更が反映されない。
*PHP 7.4のインストール [#w17ea321]
-phpのインストール。[[CentOS 8 にPHP7.4をDNFでインストール | 株式会社オルタ:https://aulta.co.jp/archives/7697]]
-標準だとPHP 7.2なので7.4を入れる。
dnf module reset php
dnf install @php:remi-7.4
dnf install @php:remi-7.4/devel
dnf install php-gd php-mysqlnd php-opcache php-pecl-mysql php-pecl-zip php-pecl-apcu
-自動起動。
systemctl start php-fpm
systemctl enable php-fpm
-phpパッケージを入れた段階でmod_phpが有効になりapacheと連携できる。
*Apacheの設定 [#ta0fdd38]
**動作確認 [#jf40e6c4]
-ドキュメントルートにinfo.phpを作成して表示。/etc/php.iniが読み込まれていることを確認。
#pre{{
<?php
phpinfo();
?>
}}
*設定 [#gdf367be]
**日本語環境 [#p9a0ddbe]
-/etc/php.iniを編集
#pre{{
[Date]
date.timezone ="Asia/Tokyo"
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.func_overload = 1
}}
-デフォルトでphp-fpmと連携するので以下のコマンドで再起動する。
-以下のコマンドで再起動する。
systemctl restart php-fpm
**動作確認 [#jf40e6c4]
-ドキュメントルートにinfo.phpを作成して表示。/etc/php.iniが読み込まれていることを確認。
#pre{{
<?php
phpinfo();
?>
}}
*nginxで使う [#af0e59f0]
-上記インストールに従うとphp-fpmが有効になっている。
-日本語環境は/etc/php.iniで共通。
-/etc/php-fpm.d/www.confを編集。以下のように設定していないとWordPressでプラグインのインストールや削除時にFTPの情報を入力するよう求められる。
**php-fpmの設定 [#f5fc0979]
-/etc/php-fpm.d/www.confを編集。
-apacheとnginx両方から使えるように実行user/groupをwww-dataにする。
-「listen = /run/php-fpm/www.sock」を読み込むためにlisten.owner/groupも変更する必要あり。その場合listen.acl_usersをコメントアウトしないと効果がない。
#pre{{
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
;listen.acl_users = apache,nginx
}}
-さらにセッションの保存先にも注意。
#pre{{
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
;php_value[opcache.file_cache] = /var/lib/php/opcache
}}
-[[php-fpm and nginx session problems - Stack Overflow:https://stackoverflow.com/questions/9203320/php-fpm-and-nginx-session-problems/50519674#50519674]]にあるように、/var/lib/php/sessionをwww-data.www-dataに変更するのは、phpパッケージがアップグレードした際リセットされる危険性があり危険。
-www-dataをapacheグループに追加する。
sudo usermod -aG apache www-data
*トラブルシューティング [#kc12bd26]
**Permission denied: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed [#n0b6dd62]
-www.sockのパーミッションをあわせる
# chown www-data.www-data /run/php-fpm/www.sock