WordPressサイトが真っ白になったり、突然403エラーになったときの対処法
WordPressはある日突然画面が真っ白になって表示されなくなったり、設定ミスで403エラーが発生したりといったことが起こります。
初めて起こるとパニックになる状況ですが、対処方法を知っていればすぐに解決できるケースが多いです。
主な原因は
- index.phpの記述間違い
- .htaccessの記述間違い、パーミッションの設定間違い
- バージョンアップに伴うプラグインのバグ
- キャッシュファイルが原因
- サーバー障害
などが挙げられます。
まずはエラーメッセージを表示させて原因を確認しましょう。
wp-config.phpを編集してエラーメッセージを確認
wp-config.phpを編集すると画面上にエラーメッセージを表示させることができます。
FTPソフトを使ってWordPressをインストールしているフォルダにアクセスしましょう。
wp-config.phpというファイルをダウンロードします。
ダウンロードしたらテキストエディタを使って編集しましょう。
wp-config.phpを開くと
1 |
define(‘WP_DEBUG’, false); |
という箇所があるので。
1 |
define(‘WP_DEBUG’, true); |
に変更してください。
すると画面上に問題のある箇所が表示されるようになります。
例えば、「Parse error: syntax error…」という場合はファイルの◯行目にエラーの原因があるということです。最後に行番号が表示されます。
{ }の閉じ忘れや全角・半角の間違いなどでもエラーが出るので、おかしなところがないか確認しましょう。
エラーを修正できたらwp-config.phpを
1 |
define(‘WP_DEBUG’, false); |
に戻すことを忘れないでください。
ただし、「Parse error: syntax error…」は、エラー原因の特定につながる大きなヒントですが、この行番号は、必ずしもエラーが発生した行の位置を示しているとは限りません。
あくまで参考にとどめ、前後や、場合によってはかなり上の行を見直すことでエラー原因を特定する必要があります。
エラーを特定することが難しい場合は他の人に依頼しましょう。
ですが、wp-config.phpのエラーの意味が分からなくても、個別に原因を見ていけば解決できる場合が多いです。
次からは個別の原因を解説していきます。
1. index.phpの記述間違い
WordPressはサブディレクトリに置いて、一つ上のルートディレクトリで表示させる(※)ことができます。この際にindex.phpを編集してルートディレクトリに置きますが、index.phpの記述をミスしてしまう場合があります。
※WordPressを「/wordpress」に置いて、サイト上のURLは「/wordpress」を外す場合にルートディレクトリにindex.phpを置きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' ); |
最後の「/wordpress/wp-blog-header.php」の「/wordpress」がサブディレクトリですが、「/」を忘れていたり、一文字入力間違えている場合があります。
正確に確認しましょう。
2. .htaccessの記述間違い、パーミッションの設定間違い
WordPressをインストールした後、編集していなければ.htaccessは次のようになっています(サーバーにより違いがあります)。
1 2 3 4 5 6 7 8 9 10 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
本来.htaccessは全角で編集してはいけませんが、知らないうちに半角ではなく全角で編集していたということがあります。
他にも何らかの編集をした際に記述を間違えてしまうということがあります。
これまで相談を受けた中には、全角の「スペース」が入っていたことでエラーが発生していたケースが複数ありました。
全角の記述が入っていないか、よく確認してください。
また、.htaccessのパーミッションをいつの間にか変更してしまったという場合もあります。
WordPressの.htaccessのパーミッションは通常「644」が推奨です。
間違えて「404」などに変更してしまい、そのままになっているとサイトが表示できません。
適切なパーミッションになっているか確認しましょう。
3. バージョンアップに伴うプラグインのバグ
プラグインによって、ある日突然エラーが発生する場合があります。
WordPress本体やプラグインを自動更新にしていると起こる可能性が高くなります。
原因は次の2つが多いです。
- プラグイン同士の競合
他のプラグインと同じ関数が使われており、エラーが発生する - WordPress本体のバージョンアップに対して、プラグインが新バージョンに対応できていない、またはその逆
この場合は原因となるプラグインを突き止め、停止する必要があります。
プラグインを停止させることでサイトが表示できない状態から復旧することができます。
FTPソフトでプラグインのフォルダにアクセスし、一つずつフォルダ名を変更してみましょう。
フォルダ名を変更することでプラグインを停止させることができます。
例:「contactform7」→「_contactfotm7」
停止させた後にサイトが表示されるようになれば、そのプラグインが原因です。
そのプラグインのバグやエラーの原因となる箇所を自分で修正するか、プラグイン開発者が対応するまで他のプラグインに変更しましょう。
4. キャッシュファイルが原因
サイトの高速化のために「WP Fastest Cache」「WP Super Cache」などのキャッシュ系のプラグインを入れている人は少なくないと思います。
しかし、キャッシュ系のプラグインが原因でサイトが表示されなくなる場合があります。
主な対処方法は次の2つです。
- 管理画面にログインできる場合は、「インストール済みプラグイン」からプラグインを停止する
- ログインできない場合は、前述のFTPソフトでプラグインのフォルダ名を変更する方法で停止させる
5. サーバー障害
サーバーにトラブルがあった場合は表示されなくなります。
レンタルサーバーを利用している場合は、サーバー会社のメンテナンス情報を確認し、対応を待ちましょう。
終わりに
今回はWordPressサイトが表示されなくなった時の対処方法を解説しました。
いきなりサイトが真っ白になると焦りますが、落ち着いて対処すればすぐに解決します。
原因を一つずつ確認していきましょう。