#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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS