WordPressブログが突然HTTP ERROR 500で表示されなくなった話
公開日: 最終更新日:2020-09-08
先週末は息子がインフルエンザを発症したり、400世帯の自治体で重役に選ばれたりとパニック祭でした、@よしぱんですこんにちは。そんな中、追い打ちをかけるようにもう一つのトラブルが我が家を襲いました。
夫が更新している家ブログ「住友林業で家を建てるよ!」が突然HTTP ERROR 500で閲覧できなくなったのです!!(割とどうでも良い…?)
あれですよ、Web制作に携わっていたら必ず一度は言われたことがある言葉、
「何もしてないのに突然見られなくなったんです!!」
何もしてないのに変化が起きることは滅多になくて、99%は何かしら触ってるんですよね、気づかぬ間に。でも今回は本当に(夫の言うことを信じるならば)何もしてなかったんです!!(記事更新は年末で滞ってるし、管理画面へのログインも2週間前が最後だったので、きっと本当なのでしょう…。)
WordPressで作ったブログ、ある日突然HTTPエラーに。
17日(土)の朝には普通に閲覧できた夫のブログ、お昼頃に見てみると…
\ 500 Internal Server Error /
この画面、WordPressでfunctions.phpいじったりしてる時に出てきて心臓止まりそうになるやつですね、って私だけ?!
「WordPress HTTP ERROR 500」などでググっても「何かしら操作している最中にエラーで画面が真っ白になった」事例ばかり出てきて、「何もしていないのに突然HTTP ERROR 500が出た」っていう事例が見つかりません。
「一時的なサーバーの問題じゃない?」と適当なことを夫に伝えて2時間ほど放置。でもやっぱり見られません。(いや、同じサーバーの他のWordPressサイトが普通に閲覧できていたのでサーバーの問題じゃないよね…知ってた…)
なにはともあれバックアップ。
一応バックアップはとっていますが、万が一に備えて最新のファイルもダウンロードしました。
各フォルダ・ファイルの更新日時をチェックすると、wp-content/pluginsフォルダ内の「wordpress-seo」「quick-adsense」の2つのフォルダが事故当日(2月17日)の朝8:08に更新されていました。はい、怪しー!!
この2つのどちらかのプラグインが原因だと察しました。
今ならお引越しプラグイン「All-in-One WP Migration」でデータを丸っとエクスポートして、Local by Flywheelでローカル環境作って確認するだろうなぁ。
WordPressをデバッグモードにしてエラーメッセージを確認。
wp-config.phpのWP_DEBUGをtrueに。
WordPressをインストールしたフォルダ直下にあるwp-config.phpを開いて、
* 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
*/
define(‘WP_DEBUG’, false);
の「false」を「true」に書き換え保存します。
WordPress初心者におすすめ!デバッグモードの使い方|MIGNON STYLE
ブラウザでエラーメッセージを確認する。
すると、さっきまで「このページは動作していません。」とChromeさんに冷たくあしらわれていた画面に、さらに冷たい英文エラーメッセージが現れました。
PHPが苦手なデザイナー代表のよしぱん、何のことか分かりません!でもまあ、Fatal error(フェイタルエラー=致命的なエラー)が起きていることは分かりました。
プラグイン「Quick Adsense」が自動更新(??)されたことに原因があるようなのでこのプラグインのフォルダを捨てちゃえば解決かな…と思ったけど、勝手に削除して夫様の大事な広告収入を無くしてはいけません。(私は使ったことが無いのでどんなプラグインか知らないけど…)
「can’t use function return value in write context」で検索すると、PHPのバージョンが原因のようです。
「Can’t use function return value in write context」と表示されるとき|PHPプログラミングの教科書 [php1st.com]
レンタルサーバーのPHPのバージョンを変更。
実はこのブログ、私のテスト用サーバーの容量が余りまくっていて「もったいないから」とWordPressをインストールして夫に押し付けたものでした。
ブログ自体は2015年にスタートしていますが、サーバーはもっと昔に借りていて、PHPのバージョンが古いまま(PHP5.4)でした。
プラグインが自動更新(?)されて、PHPの記述方法がサーバーのPHPのバージョンと合わなくなっていたのですね。(解釈間違えてたら教えてください賢い人!)
レンタルサーバーの管理画面でPHP5.4からPHP7に変更して終了、無事ブログが閲覧できるようになりました。
PHPのバージョンを変更したら、細かな部分もチェックが必要。
以前このサイト「yoshipan.com」のサーバーでPHPのバージョンを変更した際、検索結果(ブログのサイドバーにある検索フォームを入力→検索結果画面)が出なくなったことがありました。
一応各ページチェックしたつもりだったけど[検索]は見逃していたので、気付いた時には何が原因か分からず、半日調べても解決できませんでした。(同時期にSSL対応とかもしていたので、そっちが原因かと思ったり…)
WordBench京都でモデレーターのおかもとさんに見てもらったところ、わずか10分で解決!
search.phpの一部がPHP7に対応していなかったとのが原因でした。(「=& 」と「new」を組み合わせて使うというやり方がダメになってたそうです。)
新しいオブジェクトを参照渡しで代入できない
new 文の結果を参照渡しで変数に代入することができなくなりました。
コミュニティがあるって素晴らしい!
ちょうど先週日曜日のWordBench京都 2月でおかもとさんが「WordPressで困った時にやるべきことと、困らないために備えること」という私的にタイムリーなネタをされていました。
WordBenchは全国(全世界)各地にあるWordPressのコミュニティで、京都版も毎月開催されています。WordPressで困った経験がある方は是非一度、足を運んでみてください!!
3月のWordBench京都で(巻き込まれ)登壇します!
おい宣伝かよって思った方、スミマセン!!(でも参加費用は会場代の500円だけです!)
3月25日の「WordBench京都 3月 テーマ作成とサイト改善の話」で「WordPress+Google Analytics/Google Search Console」の基礎の基礎と、アクセス解析からのサイト改善のお話をする予定です!
3/25のWordBench京都で喋ります!登壇者全員女子だしゆるーい感じかと思ったら、なんか参加者の方々が凄すぎて震えてます登壇代わって…。 WordBench京都 3月 テーマ作成とサイト改善の話 https://t.co/1BqtH18QdS #wbkyoto
— よしぱん (@yoshipan) 2018年2月19日
参加者の面々が凄い人達すぎて怖いよ助けて…!!