※ 初出:2018年7月の記事をリライト。
WordPressの管理画面で「保存」を押した瞬間、画面が真っ白になって「500 Internal Server Error」が表示された——そんな経験はありませんか?さくらインターネットのレンタルサーバーを使っているなら、このエラーにはいくつか定番の原因と対処法があります。
慌てなくて大丈夫。順番に確認していけば、たいていは解決できます。
この記事では、わたし自身がさくらサーバー上のWordPressで遭遇した500エラーの体験をもとに、実際に試して効果があった対処法をまとめています。
そもそも500エラーとは?
「500 Internal Server Error」は、Webサーバー側で何らかの問題が発生し、処理を完了できなかったときに返されるHTTPステータスコードです。ユーザーには単に「サイトが見られない」状態になるので、特にアクセスの多い時間帯に起きると焦りますよね。
さくらインターネットのサポートページによると、代表的な原因として次のものが挙げられています。
- .htaccessの記述・書式・文字コードの誤り
- PHPのバージョンとWordPress(またはプラグイン)の非互換
- プラグイン同士の干渉・競合
- CGI・PHPのパーミッション設定ミス
- サーバー負荷の増大(共有サーバー特有の問題)
原因がひとつとは限らないのがやっかいなところ。でも焦らず、上から順に確認していくのが一番の近道です。

対処法① PHPのバージョンを見直す
わたしが最初にぶつかったのが、これでした。当時はPHP 5.6のまま放置していて、WordPressとの相性が悪くなっていたのです。
変更の手順は次のとおりです。
- さくらのサーバーコントロールパネルにログイン
- 左メニュー「スクリプト設定」→「言語のバージョン設定」をクリック
- PHPのバージョン欄で「8.3」(推奨)を選択して「保存」
- WordPressの管理画面「ツール」→「サイトヘルス」→「情報」タブでバージョンが変わったか確認
ひとつ注意があって、さくらの場合、PHPバージョンの変更はサーバー内の全ドメインに一括で適用されます。複数サイトを同じサーバーで運用している場合は、他のサイトへの影響も確認してから変更してください。
変更後にサイトが真っ白になったり、別のエラーが出た場合は焦らずに元のバージョンに戻せばOKです。なお、スタンダードプラン以上であれば「バックアップ&ステージング機能(Snapup)」を使って本番に影響しないテスト環境で試すこともできます。
対処法② エラーログを確認して原因を特定する
「何かがおかしいのはわかるけど、何が悪いのかわからない」——そういうときに役立つのがエラーログです。さくらのコントロールパネルからログを確認できます。
ただしデフォルトでは保存されていないので、まずログを残す設定に変更しましょう。
- コントロールパネルにログイン
- 「アクセスログの設定」を開く
- 「エラーログを残す」にチェックを入れて「送信」
- しばらく待ってから「エラーログの表示」をクリックして確認

ログの内容はちょっと読み慣れが必要ですが、エラーが発生した時刻・ファイル名・行番号が記録されているので、そこから原因プラグインやファイルを絞り込めることが多いです。

わたしのケースではCGI起因のエラーが連発していました。ただ、CGI設定の直接編集はかなり玄人向けの作業。よほど心当たりがない限りは、次の「プラグインを止める」対処から先に試すことをおすすめします。
対処法③ プラグインをすべて無効化して原因を探る
実際にわたしの500エラーが落ち着いたのは、この方法でした。PHPバージョンの変更と組み合わせて、ようやく平常に戻ったという感じです。
プラグインの干渉が原因の場合、WordPress管理画面からプラグインをすべて無効化するだけでエラーが止まることがあります。管理画面にアクセスできない状態であれば、さくらのファイルマネージャー(またはFTP)でサーバー上の /wp-content/plugins/ フォルダをリネームすることで一括無効化できます。

つまり、プラグインが入っているフォルダの名前を別の名前に変えると、WordPressがそのフォルダを認識できなくなり、全プラグインをまとめて止めることができます。
エラーが止まったら、プラグインを1本ずつ有効化して再現するものを特定します。地味な作業ですが、確実です。
テーマが原因の場合もある
プラグインを全部止めてもエラーが続くなら、テーマを一時的に公式のデフォルトテーマ(TwentyTwenty系)に切り替えてみましょう。
それで解決するなら、使用中のテーマとPHPバージョンの互換性が問題の可能性があります。
対処法④ .htaccessを確認・リセットする
プラグインの設定変更や、SSL化の作業後に突然500エラーが出た場合は、.htaccessファイルが書き換えられてしまっているケースが多いです。さくらのファイルマネージャーから .htaccess の中身を確認し、WordPressの標準的な記述と異なる部分がないか見てみましょう。
一番シンプルな対処は、いったん .htaccess を .htaccess_bak などにリネームして無効化すること。これでエラーが消えれば、.htaccessの中身に問題があったということになります。
WordPress標準の.htaccess記述は、管理画面「設定」→「パーマリンク設定」を開いて「変更を保存」を押すだけで自動再生成されます。
なお、さくらサーバーでSSL化を行ったあとに .htaccess が原因でエラーが出るケースもあります。SSL化の設定については、こちらの記事も参考にしてみてください。
→ さくらサーバーでSSL化したのに鍵マークが出ない…混在コンテンツの直し方まで
解決しない場合はサーバー乗り換えも選択肢に
上記の対処をすべて試してもエラーが頻発する、あるいはサーバー負荷が根本的な原因と思われる場合は、思い切ってサーバーを乗り換えるのも一手です。共有サーバーである以上、他のユーザーの使い方によって影響を受ける構造的な限界があります。
わたし自身もその後、さくらサーバーからエックスサーバーへ移行しました。そのときの手順と、ドタバタした顛末を別の記事にまとめています。
→ さくらサーバーからエックスサーバーへの移行、トラブルだらけだったけれど解決した記録
まとめ:さくらサーバー500エラーの対処チェックリスト
対処の優先順位をまとめると、次のようになります。
- PHPバージョンを確認・更新する(202年現在の推奨はPHP 8.3)
- プラグインをすべて無効化して再現するか確認する
- .htaccessをリネームして問題の切り分けをする
- エラーログを有効化して原因ファイルを特定する
- テーマを一時的にデフォルトに切り替えてみる
どれも難しい操作ではありませんが、作業前には必ずバックアップを。さくらのスタンダードプラン以上であれば「バックアップ&ステージング機能」が使えるので、万が一のときの保険として有効にしておくと安心です。
なお、本記事の内容はさくらインターネットのさくらのレンタルサーバー(スタンダードプラン)を使用した場合を想定しています。
※尚、データの操作は自己責任でお願いします。


コメント