弊社のある管理サイトで、画像のようなエラーが発生しました。
このサイトでは、悪名高い(?)マルチサイトの機能を利用しています。
(悪名高いと言っても、デモサイトを作るといった時には非常に便利ですよ。)
そして、ネットワークサイトの数は60! 60個のWordPressが一つのサーバーに存在していることになります。
以前から挙動がおかしいことはあったのですが、本日、ついに完全に見られなくなってしまいました…。
サーバーはXserverを使用しているのでXserverに問い合せたところ、サーバープランを変更しても改善しない問題だそうで、自力で修正する必要があります。
そこで問題の切り分けとして、以下のことを行いました。
サイトネットワークの無効化(wp-config.phpでマルチサイトの項目を削除)
テーマ側ファイルでdie();
WordPressディレクトリの index.php でdie();
それぞれ、以下の結果になりました。
サイトは復活はする(ただし、テーマがマルチサイト前提で作られているためエラーが起こる)
die(); ができずエラーは改善せず
die(); は可能
マルチサイトのこのエラーはテーマを読み込む前に発生するようで、テーマ側では何もできないですね…。
それを踏まえて、以下の対応を行いました。
データベースから子サイトの停止(wp_blogs の publicカラムの値変更)
データベースから子サイトの削除(wp_blogs の レコード削除)
これらを行いましたが、症状は変わらず。
次にこちらを行いました。
PHPバージョン 8.2 -> 7.4 へダウングレード
この対応にて、サイトが表示されるようになりました。
何とか表示されて良かったのですが、これでも表示されなかった場合はマルチサイトを完全に無効化してテーマファイルをシングルサイトとして作り直すほかありません。それには時間がかかるので、別のプランも用意する必要がありました。
弊社ではマルチサイトのサイトは構築しないのですが、今回、他社で構築されたものを弊社で管理させていただくことになりましたので、マルチサイトで引き続き運用させていただいております。
ただ、やはり、マルチサイトでは以下のデメリットがあると考えています。
子サイト数が増えるとサイトが重くなる
子サイト数が増えると今回のように意図しないエラーになる
開発環境が作りにくい
そこで現在、シングルサイトへの作り直しを提案させていただいています。
*先述していますが、マルチサイトはデモサイトなど使い方によっては便利ですので、必要に応じてご活用ください。