先日、ある有料テーマを更新したらWordpressが表示できなくなったので助けてほしい、というトラブルの対処を行う機会がありました。丸投げされてイラっと来たのですどうにかグランドフィナーレまでたどり着けたのでまとめておきます。
問題現象
STORKを最新版(1.24)に更新したら問題が起きた。
- サイトにアクセスすると画面が真っ白になる(たぶん500エラーが出ている)
- WordPressの管理画面にもアクセスできない
サーバー
スタンダードの100GBプラン
WordPress
WordPressのバージョンは不明(この時点でイラっと来る)
トラブルシュート
まず、サーバー管理画面やFTPにログインできない
とりあえず、トラブル解析するのでサーバーの管理画面やFTPログイン情報をもらったが、いきなりログインできなくて心が折れる。
次に、ログインできないという連絡に反応がない
入れないんだけどと言っても返事が来ないので、サーバー管理画面よりも上位のユーザー管理画面からたどってサーバー管理画面に侵入して、現場にたどり着く。
そしてたどり着いたWordpressのバージョンはなんと3.9
令和の時代にversion 3.9ってどうなのよ。
WordPress Version 3.9のリリースは、On April 16, 2014ですよ。
5年間もアップデートを無視ししているとはなんやねんと思ったが、逆にトラブルの原因は9割がたバージョンが古いせいだろうとも思った。
こんな状況だから、もしかしたらphpのバージョンも超絶古いのかと調べると、こちらは5.6とまだ人間レベルだった。
一応、サポート対象外だけどまだ動けるレベル。
まずは、php.iniにエラー表示オプションを追加し、エラーを確認
エラーの原因を調べるために次のような設定を追加
500エラーの時はサーバコントロールパネル->PHP設定の編集で「php.ini 設定ファイル編集」に error_reporting 8191 て入れればエラー表示を見る事ができる。
エラーを確認
テーマファイルの中で、get_theme_file_uri()が見つからないというエラーが出ている。
get_theme_file_uri()はWordpress4.7以降で追加された関数なので、Wordpress3.9では呼び出してエラーが起きて画面が白くなっている。
安定のサーバー管理画面からWordpressをアップデート
WordPressの管理画面にアクセスできないので、さくらのサーバーの管理画面からWordpressをアップデートすれば解決だな、と思ったらなぜかファイルが存在しませんと言うエラーが出る始末。
ファッ!戦慄が走る。
アップデート元が古すぎるせいだろうか??
アップデート前のテーマに戻せばええんとちゃう?
それなら、古いテーマに戻せばWordpressの管理画面にアクセスできるはずだと思ったが、古いテーマが手元にないとのこと。
有料テーマだとよくあるのだけど、古いバージョンをダウンロードできず、しかも毎回同じファイル名でダウンロードするので上書きされていたりする。
仕方ないので、真面目にエラーが出ている関数を置き換える
とりあえず、エラーを回避してWordpressの管理画面が表示されるところまでたどり着かなければならない状況になったことは理解できた。
エラーの出ているファイルは後から追加されたわけなので、それ以前は別の関数を使っていたはずである。
その関数とはget_template_directory_uri()だそうだ。
次の記事を見て修正していって、エラー回避したらサイトにアクセスできるようになった。
WordPressの管理画面にアクセスできるようになった
WordPressをverupしてテーマも最新にして無事事なきを得た。
まとめ
正直、他人のサーバーにログインして、管理のずさんさにマジビビった。