WordPressを運用していると通常のHTMLだけで出来ているWEBサイトとは異なり、様々なトラブルに遭遇する。
今回PHPのバージョンアップによるエラーが発生した。あまり起きないエラーのためか、どこにも適切な情報がない。そこで試行錯誤しているうちに(と、言っても大した事はないが)回り道をしながら何とか解決した。
トラブルの発生の経緯
弊社で2年前に制作し管理しているWordPressで作られたサービス・サイトがある。
制作時の確認不足が全ての始まりなのだが、WordPressが設置してあるレンタル・サーバーのPHPバージョンがデフォルトでバージョン5.6であった。それを知らずにWordPressを運用していたらしばらくして、WordPressのダッシュボードに「PHPの更新が必要です」とメッセージが表示されるようになった。運用上まったく問題はないのだが、セキュリティーの面でも、画面表示速度の面でもバージョンアップはした方が良い。それ以前にいつかはバージョン5.x系のサポートは終了するのであるから、WordPressでWEBサイトを運用している以上PHPのバージョンアップはしなければならないのである。
ちなみにPHPバージョンアップ以前の環境は、WordPress本体、インストールしているプラグイン、使用しているテーマ、MySQL、全て最新バージョンである。要するにPHPのバージョンに対する警告が表示される以外運営上問題はない。
多くのレンタル・サーバーがそうであるように、コントロール・パネルからPHPのバージョンは任意に選択できる。
念のため、WordPressのサイト・データとデータベースのバックアップを取った後、PHPバージョン7.3を選択しバージョンアップを行う。
PHPのバージョンアップが反映されるまで数分かかるので、しばらく待ったあとブラウザーにドメイン名を入力し、WEBサイトを表示させようとしたらエラーで表示されなくなってしまった! 「画面が真っ白になる」というやつである。当然WordPress自体にアクセスできないので、ダッシュボードにもアクセスできない。PHP7.3に限らず7.x系はすべて同じ症状であった。
バックアップを取っているとは言え、このメッセージの表示はかなり焦る。もう一度サーバーのコントロール・パネルに戻り、PHPバージョン5.6に戻し数分待った後、再びWEBサイトにアクセスしたら元に戻っていた。安心……。
何が原因なのか、一つずつ検証していく。
エラー発生原因の検証
WordPressにエラーが発生した場合、先ずやるのが以下の2つ。
- プラグインを全て無効にする
- テーマをWordPressインストール時のデフォルトに戻す(Twenty Twenty-Oneなど)
これらを実行して、再びPHPバージョン7.3にアップしても症状は変わらず。
調べていたところ、利用しているレンタル・サーバーの掲示板に、同様のエラーが発生した人とサーバー管理会社の会話が書き込まれていたので、当事者に直接聴いてみたがプラグインを無効とする事で正常に表示されるようになったと返事をもらった。しかし、これは無効だった。
一般的にレンタルサーバー会社にWordPressのトラブルを問い合わせても応えてはくれない。当然だが。
次に試すのは、ほとんど無意味だと思うが、サーバー内にあるwp-config.phpファイルの内容確認。データベースの情報を確認。そして、.htaccessファイルの内容も確認したが何も分からず。
次は、WordPressのデバッグ・モードによるエラー内容の確認。
wp-config.phpの内容を変更し、デバッグ・モードにしてブラウザーにエラーを表示するモード(WordPress でのデバッグ)。しかしブラウザーに何も表示されず。画面は真っ白のまま。
今更だが使用しているテーマの公式サイトを確認するとPHP7.x系には対応しているし、WordPress公式サイトでも同様のエラーの報告はなし。他にもいろいろ調べたが、ここで行き詰まり時間が経つばかり。
別サーバーにクローン・サイトを作ってみる
WordPress本体を新規インストールして、その上に今までカスタマイズや書き込みしたデータを上書きしてみたらエラーは起きるのか検証してみる。
たまたま同じレンタルサーバー会社の別サーバーも借りていたので、そこに別ドメインで全く同じWordPressサイトのクローン・サイトを作る。
エラーが出たWEBサイトをbluetraff.comとすると、d-sharp.comという別ドメインだが中身は同一なWordPressサイトを作る。
稼働中のサーバーはPHP5.6だがクローン・サイトはPHP7.3に予め設定しておき、新規でWordPressをインストールした上に必要なデータのみバックアップ・データを上書き。データベースをインポートし、別ドメインのクローンサイトを作ってみたら、アクセス出来た!
ここから分かったのは、
- データベースに問題はない
- エラーが出たサイトのテーマ、プラグイン、カスタマイズした内容には問題がない
以上から、それ以外のWordPressデータ内に不具合が発生し、PHPをバージョンアップするとエラーが発生するという事が分かった。
WordPressデータを新規にインストールする
その後クローン・サイトを見ても不具合は見つからなかったので、クローン・サイトを作ったのと同じ工程を元のエラーが起きたサイトにも施す。
バックアップは取ってあるので、エラーが起きたサーバー内のWordPressデータを全て削除。その後サーバーのコントロール・パネルからPHP7.3を選択しバージョンアップ。WordPress公式サイトから落とした最新版のWordPressをインストール。そこにバックアップデータから必要なデータを上書きする。データベースは問題ないのでそのまま。
以上で無事にPHPのバージョンをアップできた。もちろんダッシュボードに警告も出なくなった。
検証用のクローン・サイトの作り方は以下に詳しい。
まとめ
WordPressでエラーが発生した場合は、一般的にまず以下の手順を試みる
- プラグインを全て無効にする
- テーマをWordPressインストール時のデフォルトに戻す(Twenty Twenty-Oneなど)
- WordPressのデバッグモードでエラー・ログを表示する
以上で解決しない場合、問題を検索し調べ適宜コードなどを修正するが不明な場合が多い。
長期的に問題が解決しない場合、WEBサイトの更新にも影響を与えるため、クローン・サイトを作り検証する。そして思い切って新規にWordPressをインストールし、データを戻す方法は時間の節約でもある。