PHPのアップデートを実行したら、Zabbixが見られなくなった・・・
環境としては
CentOS 7 + Zabbix Server 3.4 + MySQL 5.7 + PHP 7.3 rc + Nginx 1.15
となかなか、変わった環境
NginxとPHPのアップデーターがあったので
そのままアップデートした所
まず 404 Not Found に
Nginx の /etc/nginx/conf.d の下を default.conf を削除してdefault.confを使用していなかったのだが
# ls -la /etc/nginx/conf.d/ total 12 drwxr-xr-x 2 root root 73 Oct 5 04:37 . drwxr-xr-x 3 root root 177 Oct 5 04:21 .. -rw-r--r-- 1 root root 1093 Oct 3 00:25 default.conf -rw-r--r-- 1 root root 1410 Sep 21 04:34 zabbix.conf
アップデートのタイミングで default.conf が追加されていた
取り敢えず default.conf を default.conf_org に mv して回避
したら、今度はPHP-FPMでエラーが発生
[error] 974#974: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:50
どうやら、PHPのUpdateのタイミングで権限が変更になっているっぽいので
# ls -l /var/lib/php/ total 0 drwxrwx--- 2 root apache 6 Sep 25 20:51 opcache drwxrwx--- 2 root apache 84 Sep 25 20:51 session drwxrwx--- 2 root apache 6 Sep 25 20:51 wsdlcache
ビンゴ!! Apacheではなく、Nginxを使用しているので root:apache ではなく、 root:nginx に変更
念の為、上記ディレクトリ以下も確認
# ls -lAR /var/lib/php/ | more /var/lib/php/: total 0 drwxrwx--- 2 root apache 6 Sep 25 20:51 opcache drwxrwx--- 2 root apache 84 Sep 25 20:51 session drwxrwx--- 2 root apache 6 Sep 25 20:51 wsdlcache /var/lib/php/opcache: total 0 /var/lib/php/session: total 0 -rw------- 1 nginx nginx 0 Oct 4 01:07 sess_21gf0hq3fo848eg6vl18tg3tlc -rw------- 1 nginx nginx 0 Oct 4 01:08 sess_4r9i7nvbncol0ul7n59hdp2m72 /var/lib/php/wsdlcache: total 0
/var/lib/php 直下だけ変更すれば大丈夫そう
# chown root:nginx /var/lib/php/* # ls -l /var/lib/php/ total 0 drwxrwx--- 2 root nginx 6 Sep 25 20:51 opcache drwxrwx--- 2 root nginx 84 Sep 25 20:51 session drwxrwx--- 2 root nginx 6 Sep 25 20:51 wsdlcache
Nginx と PHP-FPMを再起動
# systemctl restart nginx # systemctl restart php-fpm
これから Nginx と PHPのUpdateのたびに、設定変更必要なのか・・・