2019年12月某日ワードプレスの運営サイト全てに
500 Internal Server Error
(500エラー)
が表示されました。
以下解決までの全工程を書いておきます。
2転3転しましたが最後には
WEB屋さんにお寿司を奢ることで
解決できました。いや、してもらいました(笑)
Contents
- 1 PHPを新しいバージョン更新
- 2 サーバーの容量がマックスだった
- 3 500エラー中はワードプレスのダッシュボードに入れない
- 4 サーバー容量マックスな時はFTPソフトの出番
- 5 対応していないプラグインの誤作動?
- 6 プロのweb屋さんに解決策を聞いてみた。
- 7 これで解決! FTPソフトでwp-contentのdb.phpの名前をolddb.phpに変更
- 8 500 Internal Server Errorがでたら使用のサーバーの『よくある質問』を見よう
- 9 500 Internal Server Errorトラブル詳細一覧
- 10 最後の疑問 エックスサーバーの容量がマックスになった理由
- 11 最後に ワードプレスはバックアップが最重要!
PHPを新しいバージョン更新
まず思い当たったのが
『ダッシュボートにPHP更新しろな警告がきてたなぁ』
でした。
ちょっと面倒だったので放置してたんですね。
で、それかな、と。
このサイトはエックスサーバーで運営しているので
エックスサーバーのサーバーパネルにアクセス
PHPを最新版に更新しました。
ここまで行けばあとは
該当ドメインで切り替えるだけです。
ちなみに本当はこんな簡単に更新してはいけません。
PHPのバージョンが使用している
『テーマ』と『プラグイン』に対応しているかを
確認してから更新してください。
詳しくはこちらのサイトを参照しました。
PHPを最新版にしたのですが
500 Internal Server Errorのままでした。
サーバーの容量がマックスだった
おかしいなと思って検索してみると
『サーバーの容量がマックスじゃない?』
と事例が多いので確認してみるとまさにそれでした。
確認はエックスサーバーの場合
サーバーパネルで確認できます。
なら使ってないテーマがあるから削除しよう
そこで1つの問題が発生します
500エラー中はワードプレスのダッシュボードに入れない
500 Internal Server Error発生中は
ダッシュボードにもアクセスできないのです。
ダッシュボードもブックマークに入れてますが
この画面がでたままです。
サクッとデータを消せば終わりなのですが消せない・・・
サーバー容量マックスな時はFTPソフトの出番
ダッシュボードにアクセスしないで
サーバーの容量を減らしたい時はFTPソフトを使います。
ここではFile Zillaを使っています。
FTPソフトってなんぞやって方や
どうやって設定するかはこちらをどうぞ
File Zillaを起動し
リモートサイト(右側の枠)
『減らしたいサイトのドメイン』
→『public_html』
→『themes』
で使用していないテーマを削除しました。
これで無事稼働・・・・といきませんでした(泣)
運営サイトの1つだけ稼働せずに
Fatal error(致命的欠陥)と表示されました。
(ちなみに本来はこれで解決することが多いです)
対応していないプラグインの誤作動?
そこで思い出したがPHPの更新です。
プラグインが対応してなかったかな?
と思い調べると
稼働しなかったサイトでだけ使っていた
db-cache-reloaded-fixがPHP更新の際に
対応できずバグを起こすとの情報が。
これか原因は!
テーマを消したのと同じように
File Zillaを起動し
リモートサイト(右側の枠)
『サイトのドメイン』
→『public_html』
→『plugins』
→db-cache-reloaded-fix削除
webではこれで解決した事例多数!
意気揚々とサイトにアクセスする
すると表示されたのはこの画面
こ・れ・は・や・ば・い
とりあえず最初の画面より文が3倍に(泣)
バックアップをとってあるからと
調子に乗って検索してぐいぐい行き過ぎたか?
ゲシュタルト崩壊を起こしそうなほど
Fatal errorが連呼されてます。
対策を検索してみますが
解決策が1つに絞れない状態になりました。
プロのweb屋さんに解決策を聞いてみた。
これはヤバいなと思い
知り合いのweb屋さんの中島くんに連絡しました。
現在は税理士さん向けのweb運営サポート
と聞かれたので
『File Zillaで手動でとってます』
と返すと
とメッセージがきました。
バックアップをFile Zillaでとってるって何?
な方はこちらをどうぞ
これで解決! FTPソフトでwp-contentのdb.phpの名前をolddb.phpに変更
中島くん言われた通りに名前を変更しました。
wp-contentの
db.phpの名前を
olddb.phpに変更します。
名前変えただけです。
名前変えただけなんですが
これで完全に元通りになりました!
いや良かった・・・。
ちなみになんでこれで治ったのか聞いてみると
キャッシュ系プラグインを使う⇒手動削除ってやるとあのファイルだけ残ってしまうことが多いんです
そうすると中途半端に設定が残ってしまうんです
なので、名前を変えて読み込まれないようにしただけなんです
本当は削除してもOKなんですが、いちを原因が違った時に備えて名前変更にした感じです— 中島 達 | web屋。動画屋。写真屋。 (@NakajimaSatoru) January 6, 2020
だそうです。
まさにキャッシュ系プラグイン
db-cache-reloaded-fixを
FTPソフトで手動削除したのは
まんまパターンだったようです(笑)
中島くんありがとう!
今回のことを中島君サイドでも記事にしてます。
そうならないために前もって実施しておくこくことや
初動で確認すべきことがまとめてあります。
「真っ白になった。」「500エラー」など、WordPressでのトラブル時の対応方法
この記事を読めばわかりますが
アドバイス報酬はお寿司になりました(笑)
500 Internal Server Errorがでたら使用のサーバーの『よくある質問』を見よう
ちなみに500 Internal Server Errorは
それほど珍しい事例ではないので
使用サーバーサイトに
『よくある質問』にだいたい事例と
解決策が載っています。
エックスサーバーには以下の4つが
書いてありました。
CGIやPHPの同時接続数が多くなり、アカウント単位のリソース制限となっている
これは俗に言うアクセス過多ですね。
一時的なものならほっとけば治ります。
プログラムの記述内容(CGI/PHPのソースコード)に誤りがある
PHPコードが間違えている、場合です。
この場合はPHPコード修正後に
発生することがほとんどなので
PHPコードを見直して
間違えている箇所を修正してください。
セミコロンが抜けているといった基本的間違いから
配列のインデックス指定ミスで
処理が正常に実行できない場合などあります。
.htaccessの記述に誤りがある
まんまですが.htaccessの記述が
誤っている場合はもちろん
PHPを使うための記述がない場合
PHPファイルの内容に関わらず
500 Internal Server Errorが発生することがあります。
パーミッションに誤りがある
パーミッション設定の数字が違う場合です。
各サーバーに
『うちのパーミッションの数字これだから』
と指定しているので
違う場合それに変更してください。
詳しくはエックスサーバーのよくある質問を見てください。
500 Internal Server Errorトラブル詳細一覧
今回及びこのトラブルで色々検索して
今回は使わなかったけどでてきたものを載せておきます。
上のエックスサーバーのよくある質問と被るものもあります。
PHPが古いものを使用
PHPを最新版に更新した際に対応できないプラグインorテーマを使っている
wp-contentにdb.phpのファイルがある
アクセス過多
プログラムの記述内容(CGI/PHPのソースコード)に誤り
.htaccessの記述に誤り
パーミッションに誤り
最後の疑問 エックスサーバーの容量がマックスになった理由
ありがたいことにサイトは復旧しましたが
またすぐ容量がマックスになるかもしれないので
サーバープラン変更しなければと。
焼石に水とは思いましたが
使わない画像をメディアから20枚ほど削除しました。
メディアライブラリの
『すべてのメディア』を
『未添付』に変更すれば確認できます。
ただしプラグインなどに使用している画像も
含まれることがあるので
削除する際には目視で必ず確認してください。
その後にサーバーの容量を確認したんですよ
そしたらこれです。
(さっきの画像の使いまわし)
いやいやいやいや
テーマ1つと画像20枚削除しただけで
140GBも容量空かないって!!!
ちょっと理由がわからないし
また同じことが起こるのも嫌なので
今エックスサーバーに問い合わせています。
理由がわかったらここに追記します。
最後に ワードプレスはバックアップが最重要!
ワードプレスはバックアップが全てです!
今回も手動でバックアップとっていなかったら
もっと面倒なことになっていたのは間違いないです。
まだしてない方は今すぐバックアップしましょう!