WordPressサイト公開(環境移行)時のよくあるエラーまとめ
このページは約10分で読み終わります
後で読む
過去に経験してきたWordPressのよくあるエラーを一通りまとめました。今でもデータベース接続確立エラーなどを見ると心臓が止まりそうになります。
開発環境から本番環境にデータを反映しサイト公開作業をしながらこんなトラブルを抱えていませんか?
- データベース接続確立エラーが表示されている
- 反映が完了したはずが、ページが真っ白
- ID/PWが正しいはずなのに、管理画面に入れない
不具合の原因と対処法をまとめてみました。
※既に公開中のサイト、または調整中のサイトで生じる不具合のパターンとは異なります。カスタマイズ中の不具合は以下サイト様が参考になります。
1. データベース接続確立エラーとなる
サイトを表示した際に「データベース接続確立エラー」または「Error establishing a database connection」と表示される場合、以下を順番に確認してみてください。
case1 : データベース接続情報に間違いがある
wp-config.phpのDB接続情報に入力漏れまたはミスがありませんか?正しくDBに接続できないと接続確立エラーとなってしまいます。DB_NAME、DB_USER、DB_PASSWORDの項目をご確認ください。
/** WordPress のためのデータベース名 * /
define('DB_NAME', 'db-name');
/** MySQL データベースのユーザー名 * /
define('DB_USER', 'db-username');
/** MySQL データベースのパスワード * /
define('DB_PASSWORD', 'db-password');
case2 : table_prefixに誤りがある
同じくwp-config.phpにtable_prefixがありますが、初期値を変更していませんか?初期値の「wp_」を変更している場合には確認が必要です。
$table_prefix = 'wp_test_';
case3 : パーミッションに誤りがある
wp-config.phpも含め、ファイルをUPした際にWPのパーミッションが意図した状態になっていますか?サーバによってはファイルをUPした際にパーミッション変更されてしまうので確認が必要です。644等になっているか確認をしてみましょう。
2. ページが真っ白になる
FTPデータも全て転送済み、MySQLデータもインポートしたのに画面が真っ白!そんな場合は以下を確認してみてください。
この際WP管理画面のURLである /wp-login.php のURLを叩いた際に管理画面は表示されるのか、管理画面もフロントも両方表示されないのか確認をしておきましょう。
case1 : FTPでファイル転送漏れがある
開発環境からデータを落としてきた際に全FTPファイルを正常にUPできていない可能性はありませんか?開発環境と本番環境それぞれのファイル総数を確認してみてください。
case2 : パーミッションに誤りがある
サーバにFTPファイルをUPした際にパーミッションが書き換わっている可能性があります。それぞれファイルのパーミッションが644であることを確認してください。
wp-config.phpもサーバにより600、644など異なります。
case3 : キャッシュファイルが悪さをしている
開発環境でキャッシュプラグインを入れて有効化していませんでしたか?W3 Total CacheやWP Fastest Cacheなど何らかのキャッシュプラグインを有効化したまま新サイトを閲覧すると管理画面はログイン可、サイト側は真っ白という事象になることがあります。新サイト側でキャッシュをクリアするか、該当のプラグインを一度無効化しておくと良さそうです。
case4 : phpのショートタグが悪さをしている
phpの記述をする際ショートタグ(<? 〜)を利用していませんでしたか?サーバ設定が異なりPHPのショートタグが開発環境では利用でき、本番環境では利用できないパターンの場合、phpを処理できず白くなることがあります。対処法としては大きく以下2つがあります。
・.htaccessに以下を記述してショートタグを有効化させる場合
php_flag short_open_tag on
・ソース側でショートタグの修正を行う場合
// phpのショートタグの記述
<? 〜
// 以下に修正
<?php 〜
3. 管理画面にログインできなくなる
case1 : MySQLのテーブル数が不足している
phpMyAdmin等を利用しているとよく起こりがちですが、タイムアウトで、正常にMySQLを取得できずテーブル数が足りていない可能性があります。この際、wp_usersテーブルが存在していないと管理画面にログインできません。
4. サイトの下層ページが404になる
WPのパーマリンク設定を予め変更している場合にはWordPressのリライトルールが記載されたhtaccessが必要となります。サーバに開発環境と同様のhtaccessが設置されているか確認をしてみてください。
この際本番環境のWPにhtaccessが予めある場合、htaccessの記述統合が必要なのでその場合は検証が必要です。
またhtaccessのパーミッションが適切に参照できるかどうかも確認をしてみてください。※サーバによって400、644などパーミッションに必要な設定は異なります。
5. 管理画面の一部が動かない
事前に本番環境上でWordPressが動作するかの検証をしていましたか?もししていない場合WordPressの動作に必要なPHPモジュールが不足している可能性が考えられます。WordPressの動作には下記のモジュールが必要です。ターミナルやphpinfoなどを通して確認してみてください。
php-mysql
php-gd
php-mbstring
php-mcrypt
6. 管理画面が崩れる
ブラウザのコンソールで確認をするとエラーが出ていませんか?
添付ではJQueryに関するエラーが出ていますが、状況によりCSSのエラーなども起きていることがあります。wp-config.phpファイル内に下記を1行追記すると管理画面の崩れが解消されるかを確認してください。
define('CONCATENATE_SCRIPTS', false);
上記コードは何をしているかというと、WordPressが統合したJavaScriptやCSSを元々のファイル毎に分解してくれる為、正常に読み込めるリソースファイルは正常に読み込むので多くのリソースファイルが正常に動作する場合に有効です。
原因は文字化けしているリソースがあり、該当のJavaScriptやCSSが読み込めない為崩れてしまいます。
ファイルを特定したら該当のファイルの文字コードを調整するか、文字化けしていない元ファイルを元に修正をすると正常に治ります。
7. 表示レイアウトが崩れる
ステージング環境から本番環境などに反映した際になぜかレイアウトが大きく崩れることがあります。
ソースコードを見てみるとわかりますが、WordPressのテンプレート内で「<?」といったphpのショートタグが使われていることが原因で崩れているケースがあります。
.htaccessに以下の記述をすることでソースコード内を修正しなくても「<?」がphpとして認識されるようになります。
php_flag short_open_tag On
いかがでしたか?ここではよくあるトラブルをまとめてみました。ここに記載の内容が少しでもお役に立てたら幸いです!