WordPressが500エラー!急にサイトが表示されない時の対処方法

WordPressが500エラー!急にサイトが表示されない時の対処方法
(YouTube, AdSense, Play 公認エキスパート)
2021年03月03日 in Wordpress
記事内にPR・広告が含まれる場合があります

「今まで普通に表示されていたWordPressのサイトが急に表示されなくなった!」

WordPressを利用しているとたまにサイトが表示されなくなってしまうことがあります。私も先日、記事を書いて公開ボタンを押したらサイトが表示されなくなってしまいました。特に管理画面でエラーは出ませんでしたが、サイトを表示させると「500エラー」として下記のように表示されました。

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@***.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

このような状況に陥るとパニックになってしまう方もいると思いますが、だいたい原因と対処の方法がありますのでとりあえず落ち着いてください。

どのような状況でもバックアップを取ってあれば、最悪復旧が困難であっても問題がなかった状態に戻すことが可能ですので、日頃からデータベースも含めてバックアップを取っておきましょう。

広 告

原因別の対処方法

プラグインを見直す

WordPress管理画面に入ることができれば、有効化しているプラグインを見なおしてみてください。特にキャッシュ系プラグインを利用していると、何かのタイミングでエラーが起きサイトが表示されなくなることがあります。

またプラグインによっては別のプラグインやテーマと相性が悪いものがあります。そのようなプラグインが有効になっていることで不具合が起きる場合もありますので、一つ一つプラグインを無効化して改善されないかを確かめてください。

テーマを変更する

テーマをカスタマイズしたりアップデートすることでエラーが起きることがあります。とりあえず別のテーマを適用してサイトが表示されるかを確かめてください。もしテーマを変更することでサイトが表示されたのであれば、使用していたテーマに問題があると言えます。

500error-02

特に「function.php」をカスタマイズしてサイトが真っ白になってしまうことがあります。テーマをカスタマイズする際も、カスタマイズ前のファイルのバックアップをしておきましょう。

サーバーに負荷がかかっている

常に500エラーが表示されるわけでなく、サイトが表示されることもある場合はサーバーに負荷がかかっており、サーバーがダウンしている状態かもしれません。低スペックのレンタルサーバーを使用していたり、使用しているサーバーで対応できないくらいのアクセスが来ている場合に起こります。

このような場合はサーバーの負担を軽減させるために、キャッシュ系プラグインを使用したり、CDNを利用しましょう。CDNを簡単に導入できるプラグイン『Photon』がおすすめです。

.htaccess を見直す

WordPressで起きる500エラーの多くが「.htaccess」ではないかと思います。これもサイトが表示されなくなる前の「.htaccess」ファイルがあれば、アップロードするだけで改善されます。

もしバックアップがなければFTPでサーバーにアクセスして「.htaccess」ファイルを確認してください。特に触っていない「.htaccess」ファイルであれば下記のようになっています。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ja/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ja/index.php [L]
</IfModule>
# END WordPress

※使用サーバーによってPHPバージョンを指定するコードが含まれたりします。

PHPやMySQLのバージョン確認

500error-03

サーバーのPHPやMySQLのバージョンが古く、最新のWordPressのバージョンに対応していない時にも表示されなくなることがあります。サーバーの管理画面からPHPやMySQLのバージョンが古くないかを確認してください。