EC2上でWordPressをインストールし、php56-gdをインストールするとApacheのテストページが表示される
EC2上にたてたWordPressでブログが表示されずApacheのテストページが表示されて困っています。何か考えられる原因や対応があれば教えていただきたいです。
再現手順
- t2.microインスタンスをAmazon Linuxで立ち上げる
- https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hosting-wordpress.html に従って、ドキュメントルートにWordPressをインストール
- WordPress上でブログを普通に数ヶ月運用
- 画像を扱いたくなったので、
sudo yum install php56-gd
をした後に、sudo service httpd restart
を実行 - ブログにアクセスする
- ブログが表示されず、Apacheのテストページが表示されてしまう
困っていること
- ブログが表示されず、Apacheのテストページが表示されてしまう
問題点
- ブログではなくてApacheのテストページが表示されてしまう(以前ブログが表示できていたのと同じURLなのに)
- /wp-admin/install.php にアクセスすると、Error: PHP is not running と書かれた画面が表示される
<?php echo phpinfo(); ?>
などと書かれた/test.phpにアクセスするとソースコードがそのまま表示される
原因?
- phpが動かない状態になっている?
補足事項
- php56-gdインストール直後は特に問題ないですが、Apache再起動後に問題が起きる
- php56-gdインストール前にAMIをとっていて、そのAMIから新たにインスタンスを立ち上げ同様の手順を行うとやはり同じ問題にぶちあたる、という再現性がある
- EC2はt2.microを使っている
- 3ヶ月前にインストールしたばかりで、特にソフトウェアのバージョンが古いということはなさそう
- Amazon Linux2ではなくてAmazon Linuxです。
- https://104ichi.com/blog/wordpress-index-source/ を参考に、
define('WP_DEBUG', false);
でtrueにしてみましたが、特にエラー文は表示されません。
何か考えられる原因や対応があれば教えていただきたいです。
ぐぐりましたが、phpが動いていなさそう、、、というところまでしかわかりませんでした。
追加情報
phpのバージョン
[root@ip-172-31-29-31 ~]# php -v
PHP 5.6.36 (cli) (built: May 10 2018 17:37:08)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@ip-172-31-29-31 ~]#
アクセスのたびに表示されるerror_logのログ
[Fri Jul 06 20:07:30.108607 2018] [autoindex:error] [pid 7789] [client 124.26.172.220:50094] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive
ちなみに、
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html にしたがって、Apacheをインストールしてテストページを表示させるという最低限のことをやってテストページが表示されるときと何かエラーログに差分がないかどうか見てみました。この場合は、さきほどの
DirectoryIndex (index.html) found
ではなくて、
DirectoryIndex (index.html,index.php) found
となりますね。差分が気になります。
この差分を受けて、そして下記のようにindex.phpを追記してみると、index.phpのソースコードがそのまま表示されてしまいます。
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
コンソール上でのphpの実行
<?php echo phpinfo(); ?>
と書いたsample.phpをコンソール上で実行すると、問題なくphpinfoの情報が表示されます。(細かく一行一行内容を確認はしてないですが)