fedora30 で php7が動かない。phpinfo() すらこんなだ。
<環境>
# httpd -v
# php -v
PHP 7.3.8
<直し方>
# vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
↓ コメントアウト
#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
↓ コメントアウトを外す(有効化する)
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# systemctl restart httpd
参考にした記事はこれ。こういう生の記事が一番役に立つ。
以下、解決に至るまでの経緯。
まず最初、phpinfo.php すら起動しない現象が発生。
この状態ではhttpdが悪いのかphpが悪いのか判断できない。
phpはfedora30をセットアップした直後にyumでインストールしたけど…もしかしてphpのインストール自体に失敗してるのか?
phpが吐き出した文字列が出てくる。この時点で「phpは悪くないんじゃないかな?」「phpのインストール自体はうまく行ってそう」という感じ。
ということは原因はhttpdではあるまいか。
# curl http://サーバのアドレス/phpinfo.php
すると503エラーが返ってきていた。
この記事参照して1つ1つ原因らしきものに当たっていく。
httpdがfirewallでブロックされているのではあるまいか。httpdを許可する設定をする。
# firewall-cmd --list-all
# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload
# firewall-cmd --list-all
httpdを再起動。
# systemctl restart httpd
しかし解消しない。
そこでhttpdのログを見る。
# vim /var/log/httpd/error.log
何か「 php-fpm」なるものがエラーを吐いている。
Google先生に丸投げして答えを探してもらう。
役に立ちそうな記事を発見。
む。この記事良さそう。
まんま試す。
# cd /etc/httpd/conf.modules.d/
# ll
# vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
↓ コメントアウト
#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
↓ コメントアウトを外す(有効化する)
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
編集後はhttpdを再起動する。
# systemctl restart httpd
よし。
phpinfo.php にアクセスできるか試す。
動いた。素晴らしい。
というか、yumでインストールしたのにしょっぱなから動かないなんて、普及させるつもりないだろfedora。ダメダメじゃないか。
おまけ)
html内に書いたphpコードが動くようにする。
# vim /etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .html を書き足す。
# systemctl restart httpd
これでたくさんの自作アプリが動く。よかったよかった。