WordPressの画面が真っ白になった時は、hashの設定を疑いましよう。
この記事のもくじ
WordPressアップグレードする場合は注意
前々からWordPresss最新版へのアップグレードをやろうと思っていました。
エリアターゲットの管理サイトが4つあります。それぞれのwordpressのバージョンが統一されていなかったので、「wordpress3.9.2」のバージョンで統一しようと思っていました。
WordPress4.0へのアップグレードのお知らせが来てしまって、管理画面から簡単に3.9.2へのアップグレードができなくなってしまいました。
最新版にしか、wordpress管理画面からはアップグレードできません。
旧バージョン(3.9.2)へのアップグレードも出来ないことはないのですが、手作業やるのは手間がかかる。
だったら、セキュリティ改善が入ったWordPress4.0環境で全てのサイトが動かせればいいな、と思いました
データベースとコンテンツのバックアップをとって、ダッシュボードから更新ボタンをクリック。
突如、管理画面ログイン以降、画面が真っ白に
デバックモードで原因を特定する
デバッグモードの出番、早速来たねこれ。
参照:WORDPRESS 500内部エラーの詳細を調べる方法
wp-config.phpに一文入れるんでしたよね。
wp-config.php
MARKDOWN_HASHf425fec7251cefa09ebf9f1262aea736MARKDOWN_HASH
今回は、こんな場合を想定してバックアップもしっかりとっていたので、比較的焦りはありませんよ。
焦りはありません。そう、焦りはありません。
ほら、エラーメッセージが表示されましたね。
Fatal error: Call to undefined function hash() in /XXXXXXXX/wp-includes/session.php on line 64
Google先生の翻訳によると、
「致命的なエラーでてるね、未定義の関数hash()を呼び出しているよ、そんな関数、あんたの使ってるサーバーにないよ。」
そんな感じらしいです。
そんなこと言われても困るので、
「Fatal error: Call to undefined function hash() in」
でググってみたところ、wordpressフォーラムで全く同じ内容の投稿が。しかも解決済みではありませんか。
PHP5.2ならデフォルトでhashが使える筈ですが…一つ可能性として
コマンドラインから$ php -i
またはphpinfoでhashが有効になってるか確かめてみてください…
(hash support : enabled)
(http://ja.forums.wordpress.org/topic/138806)
うちのサーバーの要件はコチラ。
- php5.3.19
- mySQL 5.0.X
php5.2以上なので、デフォルトでHashが使えるはずなのですが動いていないのか。
hashを確認する方法
Hashが有効になっていない可能性があるので、phpを確認してみました。
<!--?php echo <span class="hiddenSpellError" pre="echo " data-mce-bogus="1"-->phpinfo(); ?>
これを適当な箇所に放り込んで、ブラウザ上からphpコマンドを 実行。ブラウザで対象ファイルを保存した箇所を入力
http://xxxx.com/…/test.php
結果:ファーストサーバーでは、このコマンドは使わせてくれませんでした。(http://support.fsv.jp/manual/php/outpinfo.html)
ファーストサーバーでは、コンフィグレーターというところで確認ができるようです。
調べていくと、そもそもHashの項目がない。
まさにフォーラムの質問者と同じ状態に陥る。
というわけで、運営会社のファーストサーバーにHashをインストールする依頼を提出しました。
一日目はここで終了。
返信、対応があまりに遅い場合は、用意していたバックアップを使ってwordpress3.9.2へダウングレードすることで今回の修正とします。
今後懸念される問題点
WordPress4.0を諦めるとなっても、他のサイトも旧バージョン(wordpress3.9.2)にアップグレードしなければならず、結構面倒(´・ω・`)
ダウングレードでは根本の問題は解決してなく、セキュリティの観点からも、
いずれはWordpressのバージョンを上げる必要があるため、今回ファーストサーバーから良い返事を貰えなければサーバー乗り換えも視野に入れて検討する必要あり。更に面倒(´・ω・`)
後日、ファーストサーバーから連絡がきた
hash関数を有効化するには、運営にお願いをする必要があったようです。
以下内容抜粋
お知らせの内容をもとにご契約サーバーのエラーログを確認したところ、
以下のエラー記録がございました。——————————————————————
■エラーログ(error_log)一部抜粋
——————————————————————
[Wed Oct 22 17:11:55 2014] [error] PHP Fatal error: Call to undefined function hash() in /XXXXXX/wp-includes/session.php on line 64・ログの保存先・種類
http://support.fsv.jp/manual/analysis/log/log.html・アクセスエラーログ確認方法
http://support.fsv.jp/manual/analysis/log/check/error.html
——————————————————————上記記録につきまして、先日公開された「WordPress 4.0」ではWordPress
を動作させるためのPHPにて、新たにhash関数が必要な状況でございますが、
昨日【10月22日(水)】時点でご契約のサーバーではhash関数は無効となって
いたために、事象が発生したものと存じます。なお、hash関数につきましては昨晩弊社にて作業を行わせていただき、
有効化対応が完了しておりますので、お手数をおかけいたしますが、
ご契約サーバーにて WordPress4.0 へのログインが可能かお試しいた
だけますでしょうか。
早急な対応により、解決しました。
ありがたやファーストサーバー。しかし、この事例、多くないのですかね。