WordPress:Fatal error: Call to undefined function hash() in…session.php on line 64

先日知人からWordPressをバージョンアップしたらダッシュボードなど設定画面に入れなくなったという連絡をもらいました。

ログインしようとすると、

Fatal error: Call to undefined function hash() in xxx/xxxx/wp-includes/session.php on line 64

というエラーが出てコンテンツを見る以外の WordPress 機能が使えなくなったと言うことです。

どうも、ダッシュボードの更新催促に促されるまま、4.0 にアップデートしたようです。私はまだ4.0に上げてなかったので、非公開URLのWordPress を4.0に更新してみたところ、特に問題なし。

エラーメッセージを検索してみると、wordpress のフォーラム情報が見つかりました。

http://ja.forums.wordpress.org/topic/138806

に同じ症状がありました。

WordPressを利用しているサーバーにPHPのHASH拡張がない場合にこの症状が表れるという感じ。

しかし、レンタルサーバーの場合、必要なPHPモジュールが入っていないことを確認する方法が必要になります。

<phptest.php>

<?php echo phpinfo(); ?>

とだけ一行のコマンドを書いたファイルを作って、phptest.php (拡張子がphpならなんでも)として保存します。
そして、これをサーバーのどこかにアップロードし、実行権を与えます。

次に自分のブラウザーから、このphpコマンドをCGIとして実行します。要するに、ブラウザーのURLに、

http://www.your.wp.server.com/phptest.php

という感じでアクセスします。下図のように enable と表示される部分があればいいのですが、そうでない場合はユーザー側では手を出せない箇所のためプロバイダーに連絡を取ってサーバーにHASH拡張モジュールを入れてもらうか、WordPress4.0に対応している別プロバイダーに乗り換えるか、4.0にアップデートする前に使っていた 3.9.2 に戻すことになります。

php_hash_module_checkいずれにせよ面倒です。
余談ですが、NTT PC の WebARENA SuiteX レンタルサーバーでは WordPress 4.0 へのアップデートは問題なく行えました。

コメントを残す