WordPressは便利だけど……

トラブルシューティングは難しい

WordPressは世界のウェブサイトの1/3を構成しているだけあって、非常に便利で、常に先進的なCMSです。初心者にもやさしいし、日々機能を拡充していっています。

しかし、WordPressの初心者に優しい部分はあくまで構築までであって、万が一トラブルが起こった時なんかは解決が難しかったりします。これで、サイト運用をあきらめた、なんて方も多いんじゃないでしょうか。

そのわりに、どんなホスティング事業者も、基本的には WordPress のトラブルシューティングはサポート対象外です。しかし、これにはちゃんと理由があります。

  • WordPressのカスタマイズは千差万別で、有名プラグインだけでかなりの数があり、設定方法やPHPの環境によってもかなり状況は変わってくる。
  • トラブルが起こったWordPressの管理画面に入らなくては分からない部分がたくさんある。

作るスキルとトラブルシューティングのスキルは別のものなので、ウェブ制作業者の中には復旧を依頼できない人もいますし、そのために『WordPressの更新はしないでください』なんていう、とんでもない事を言い出す業者もいたりします。

トラブルシューティングには常套手段がある

しかし、WordPressのトラブルシューティングについては、いくつか常套手段があります。今回は私個人がWordPressを触ってきた中で得た知見から、有効そうな手段をいくつか紹介したいと思います。もしトラブルが起こった際にはまず、これらを試してみるというのも方法の一つです。

※ ここでは、さくらのレンタルサーバを前提としてお話していきたいと思います。

.htaccessを無効化してみる

画面が真白、あるいは「Internal Server Error」と表示される場合、.htaccessの構文エラーで問題が発生していることがあります。このような場合は、.htaccessを無効化することでエラーに変化があるかなどを確認してみてください。.htaccessの無効化は簡単です。FTPや、さくらのレンタルサーバであればファイルマネージャーを使って、.htaccess → .htaccess_bak などのようにファイル名を変更するだけです。

ちなみに、.htaccessに起因する場合、画像ファイルへアクセスしてもInternal Server Error(500)エラーとなるので、WordPress以外のウェブ表示不具合でも原因特定に役立ちます。

Internal Server Errorは.htaccessファイルなどの構文にエラーがあるときに発生するので、本来であれば画像ファイルへのアクセスでこのエラーが起こる事はありません。つまり、画像ファイルへのアクセス時にInternal Server Errorが発生する場合、特にレンタルサーバの場合は、.htaccessファイルに原因があるのではないかと推定されるという次第です。

プラグインやテーマを無効にしてみる

プラグインを無効にしてみる

WordPressの新しいバージョンとの整合性などで、プラグイン内に問題が発生した場合、一旦すべてのプラグインを無効にしてみる事で問題の切り分けが可能です。

FTPなどでWordPressのインストールディレクトリ内の /wp-content にアクセスすると、下記のようなファイル、ディレクトリの一覧が確認できます。/wp-content 内には必ず /plugins というディレクトリがありますので、FTPやファイルマネージャーなどでWordPressのインストールディレクトリ内の /wp-content にアクセスし、/plugins を /plugins_bak などの任意の名前に変更してください。

もし、プラグイン内に問題があった場合、この作業でWordPress管理画面の表示、ログインが可能となります。プラグインは /plugins の中にプラグインごとにデータが入っていますので、あとは順にプラグインの各ディレクトリをリネームするなどで原因となったプラグインを特定し、対応するだけです。

テーマを無効にしてみる

テーマもまた、WordPress本体やプラグインなどと不整合があった場合に、WordPressの画面を真っ白にしてしまう場合があります。テーマは /wp-content 内の /themes のディレクトリに入っていますので、テーマに問題がありそうなときは、テーマを無効化してみましょう。
テーマの場合もプラグインと同様、FTPやファイルマネージャーなどでWordPressのインストールディレクトリ内の /wp-content にアクセスし、/themesを /themes_bak などの任意の名前に変更する事で、無効化が可能です。

/themes の中の現在利用中のテーマディレクトリの名前を変更する

そうする事で、WordPressのフォールバック機能により、テーマがデフォルトに戻り、一応のウェブ表示まで復旧可能になる場合があります。

リカバリーモードを試してみる

WordPressには、5.2からリカバリーモードという機能が追加されています。古いWordPressをご利用の場合は使えませんが、最近WordPressをインストールした、あるいは更新したというような方は試す価値があります。

リカバリーモードは、WordPressサイトに致命的な問題がある場合に使用します。その際には、このような画面が表示されます。

「詳細については、サイト管理者のメール受信ボックスを確認してください」と表示されている通り、管理者のメールアドレス宛に「サイトで技術的な問題が発生しています」というメールが届きます。その中にリカバリーモードにログインするURLが記載されているので、そちらにアクセスするとリカバリーモードでログインする事が可能となっています。

PHPのバージョンを変える

現在のWordPressの構成とPHPのバージョンが合っていない可能性もあります。特にサーバ移転作業後などは、新旧サーバでPHPのバージョンが異なる可能性があるので、PHPのバージョン変更をお試しください。

通常、PHPは常に最新バージョンを使うことをおすすめしますが、プラグインなどによってはPHP5.6などの旧バージョンでしか動かないものがあります。サーバ移転などの際、移転元サーバでPHP5.6を利用されていた場合、さくらのレンタルサーバでは初期設定がPHP7となりますので、WordPressが動作しない可能性があります。サーバ移転中の方は一度試してみると良いでしょう。

参考:PHP提供ポリシー

PHPのエラーメッセージを確認する(上級者向け)

PHPのエラーコードを読んで、対処できる方向けの情報になります。

トラブルが起こった際、PHPのエラーメッセージを確認するとエラーを起こしているプラグインやテーマのフォルダ名が表示されるので、原因の切り分けに便利です。しかし、WordPressはデフォルトの状態では、PHPにエラーやワーニングがあっても表示されないようになっています。

エラーメッセージを表示させるには、WordPressがインストールされたディレクトリ直下の wp-config.php というファイルを一行だけ変更する事で、エラーが表示可能となります。

wp-config.php の編集箇所

変更前:
define('WP_DEBUG', false);

変更後:
define('WP_DEBUG', true);

うまくいけば、以下のような感じの表示になります。

上の画像では、WarningとFatal errorが表示されていますが、Fatal errorの方のエラーメッセージに着目すると解決の糸口になると思います。

転ばぬ先のバックアップ

さくらのレンタルサーバには、バックアップ&ステージングという機能があります。WordPressに特化した部分もあり、非常に便利です。

さらに8世代までバックアップを残すことができるので、いついつのバックアップまでデータを戻してみる、というようなことができます。バックアップ&ステージングはさくらのレンタルサーバ スタンダード以上のプランで利用できるので、是非活用してください。

それでも改善しない場合は…

WordPressには公式のサポートフォーラムがあります。オープンソースのCMSなので、問題解決を約束してくれるものではないですが、最終手段として、ここを頼るのは有効な手段です。

WordPress サポートフォーラム

WordPressのサポートフォーラムに相談する事で、コミュニティが盛り上がっていくという側面もありますので、まずWordPressサポートフォーラムのTroubleshootingを確認の上、相談してみると良いでしょう。

まとめ

トラブルシューティングは難しいものですが、簡単で効果の高いものから順に試していく事で改善する事があります。バックアップ&ステージングを使って、いつでも元の状態に戻せるようにしておけば、たいていの事はバックアップ時点まで戻すことができます。トラブルシューティングを行う前にバックアップが必須となりますが、思い切ってやってみると意外とうまくいくかもしれません。よければ試してみてください。もちろん、復旧直後も必ずバックアップを取ってくださいね。