#author("2020-11-07T08:41:16+00:00","default:src128","src128") #author("2020-11-07T12:25:35+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と連携できる。 **動作確認 [#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 }} -以下のコマンドで再起動する。 systemctl restart php-fpm **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グループに追加する。 -www-dataをapacheグループとnginxグループに追加する。 sudo usermod -aG apache www-data sudo usermod -aG nginx www-data -NginxでWordPressのダッシュボードが正常に表示されない場合、/var/lib/nginxのパーミッションを変更する必要あり? chown -R www-data.www-data /var/lib/nginx *トラブルシューティング [#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