WordPress themes を作成していると、ローカル環境でファイルやデータベースを予め作成し、それをアップロードしてサーバー上に同じものを再現することが良くあります。
その反対にサーバー上に既に公開されている古いテンプレートをダウンロードして、ローカル環境に再現することも稀にあります。
こうした再現方法は様々なところで既に紹介されているのですが、自分で実行してみると予想外のエラーが生じて説明通りに行かないことも多々あります。
私が困ったことは、以下のようなブラウザの警告文が生じてフロントページにアクセスできない現象です。
1 2 3 |
This page isn’t working localhost didn’t send any data. ERR_EMPTY_RESPONSE |
データベースには正常に接続できているらしく、ログイン画面などにはアクセスできるのですが、静的なフロントと自作の幾つかのページにだけはアクセスができません。
行なったことは (1) ローカル環境の workspace に WordPress をダウンロードして展開し、データベースを新規に作成したこと。
その後、(2) サーバー上の mysqldump を使用して WordPress データベースを SQL ファイルに出力したこと。
1 |
$ mysqldump -u yourName -p wp_project > wp_project.sql |
最後に (3) サーバー上にて出力した SQL ファイルと古いテンプレートファイルをダウンロードして、ローカル環境で展開した WordPress ファイルと作成したデータベースをそれぞれ上書きしたことです。
1 |
$ /Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot -p wordpressProject < wp_project.sql |
この状態でブラウザを立ち上げて、localhost の WordPress プロジェクトにアクセスしてみたのですが、フロントページが表示されずに ERR_EMPTY_RESPONSE というエラーメッセージが出力されてしまいます。
原因が分からないのでエラーログを参照してみましたが、特にエラーらしきものは記録されていません。
1 |
$ cat /Applications/MAMP/logs/mysql_error_log.err |
あまりの不明さに .htaccess ファイルを編集したりと的外れなことを一通り検証して、ふと未設定な項目を埋めていけば動くのではないかと wp-config.php ファイルを開いて WP_HOME と WP_SITEURL に localhost を指定してやりました。
1 2 |
define('WP_HOME','http://localhost:8888/wordpressProject'); define('WP_SITEURL','http://localhost:8888/wordpressProject'); |
この変数を設定してようやくローカル環境でもフロントページが表示されるようになりました。
全く私が悩み苦しんだ数時間は何であったのでしょう。
同じようにデータベースの接続が正常、ログイン画面などには問題なくアクセスできるのに、フロントページが表示されない場合は wp-config を見直すと問題が解決するかもしれません。