以前、“お名前サーバー”でWPのアップデートが途中で止まった話を書いたが、今回はXreaで似たような事があった。
年中こんなことばっかりしてるな、本当に。
WP自体のアップデートが失敗すること、特にXREAで失敗することにはだいぶ慣れてきた。
しかし、今回少し厄介だったのは、以前のお名前サーバーの時と同じく、アップデートの途中で失敗したため、ファイルが中途半端に更新されていたところ。
サーバー上のファイルを見ると、新しいファイルと昔のファイルが混在しているのだ。
サイト自体にアクセスしても、WPの管理画面にアクセスしてもphp関連のエラー文言が出ている。
とりあえず /wp-includes/ と /wp-admin/ の配下の全ファイルを、別のサーバーから持ってきて(WordPressサイトからダウンロードしても同じ)、それを上げてみた。
すると、エラーは消え、サイトは正常に表示される!
しかし、管理画面にログインしようとするとログイン情報はきちんと入力できるものの、ログイン後にリダイレクトされる/wp-admin/が真っ白。
複数のブラウザで試しても同じ。
なんとなく、思いつきで
/wp-admin/index.php にブラウザからアクセスしてみると、データベースのアップデート確認画面が表示され、それに従いDBをアップデートすると、無事管理画面が表示された!!
理由がよくわからないが、こういうこともあるんだな。
(※追記 後に同じ事象が発生。その時はアップデート自体ではエラーが出ておらず、管理画面にアクセスすると上と同じように真っ白な画面。この時も/wp-admin/index.php にアクセスすることで解決。。。と思ったら別の問題が。↓の追記に続く)
管理画面にログインすると、動きは正常だが、表示が英語だったので、最後に /wp-content/langueges/ 配下を最新のものに置き換えて無事更新完了。
毎度のことながら、ドキドキハラハラ楽しませてくれるわい。
めでたしめでたし。
<<追記>>
上の方法で問題は解決したと思いきや、今度は管理画面にログインはできるようになったものの、なぜか表示が崩れて恐ろしく使いにくくなった。
解決策をネットで探ってみたところ、どうやら、WPの管理画面のCSSは /wp-admin/load-styles.php で動的に生成されるようになっているが、通常ならCSSとして認識されるべき情報が、apacheのmod_layoutがなぜかhtmlとして扱い、それが一部ブラウザ(firefox等)での表示崩れにつながっているという。
それを避けるためには、/wp-admin/ の下の.htaccessに以下の記述を書くことで足りる。
<Files load-styles.php> LayoutIgnoreURI *.php </Files>
今度こそ、めでたしめでたし。