【AWS】JINが表示されなかったときの対処法

当サイトのリンクには広告が含まれています。

先日、とあるお仕事でAWSで環境構築し、有料WordPressテーマ「JIN」を入れたのですが、上手く表示されませんでした。

その時の調査方法とそのときの対処法の備忘録です。

目次

実施した環境構築

実際に環境構築したときの手順です。

まず、AWSのサーバーは公式の手順に則って作成し、WordPressのインストールまで完了させました。とくに追加で特別なことはしていません。
スケーラブルなウェブサイトの構築方法

続いてDLしたJINのテーマを通常通り管理画面からZIPファイルをアップロードして、インストールしました。

画面が真っ白に

インストールして有効化したのでURLにアクセスすると、、、真っ白。

管理画面はJINの画面になってるので、テーマのインストールエラーではありません。
投稿とかしてみても登録できるし、管理画面も出るからデーターベースも接続できてる。

検証ツール見て見ると、headまでは読み込めていて、Body以下が表示されていない様子。

試しに、別の公式テーマをインストールしてみて有効化して見ると、問題なく表示されるので、JINの内部が何か原因がある模様。

対処法

とりあえず困った時は公式サイトへ。

ちゃんと不具合時の対処法も書いてありました!
WordPressテーマがインストールできない場合の対処法【解決マニュアル】

インストールし直す

公式に以下のようにあったので、一度削除してからインストールし直して見ました。

WordPressの不具合?で、テーマインストールに失敗する(画面が真っ白になる)こともあります。

その場合は、一度アップロードしたテーマを削除して、もう一度アップロードすることで正しくインストールできますのでお試しください。

画面を見てみると、やっぱり真っ白…
インストールの不具合ではない様子。

デバックモード起動

WordPressはデフォルトでデバックモードが無効になっておりエラーが表示されないので、デバックモードを有効化します。

wp-config.phpを開き、デバックモードの記述がFalseになっているので、それをTrueにするとエラー文が出るようになります。

define('WP_DEBUG', true);

画面を開くと、以下のエラーが出ました。
Can’t use function return value in write context in
(訳:関数の戻り値を使用できません)

公式サイトに書いてあるPHPのバージョンが古いことが原因のようです。

「Fatal error: Can’t use function return value in write context in」というエラーが出てが表示されてテーマが適用できない場合は、PHPのバージョンをご確認ください。

古いバージョンだとテーマがインストールできない場合があるので、新しいバージョン(php7.0以上)に切り替えることを推奨いたします。

念のためエラーが出ているソースコードも見てみました。
エラーが出ているのはヘッダーのここ。

if( empty(is_title_text()) ):

empty関数が影響しているので、やっぱりPHPのバージョンが原因なよう。

PHP 5.5 より前のバージョンでは、empty() がサポートするのは変数だけです。 それ以外の値をチェックするとパースエラーになります。

http://php.net/manual/ja/function.empty.php

PHPのバージョンアップ

サーバーに接続し、PHPのバージョン確認

$ php -v
 PHP 5.3.29 (cli) (built: May 12 2015 22:42:19) 

PHP 5.3.29か…
それはエラーでますね。

バージョンアップして、再度確認

$ php -v
 PHP 7.2.12 (cli) (built: Nov  6 2018 16:57:52) ( NTS )

無事にPHP7になりましたので、再度画面チェックしたら無事に表示されました。

まとめ

  • AWSでWordPress環境を作った時はPHPのバージョンに注意
  • テーマをインストールして画面が白くなる時は、PHPのバージョンを確認

調査と対処で2時間以上も費やしてしまった。
色々と勉強になりました。

目次