Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

wordpressプラグイン「Quick Cache」最新版がphp5.2xでは動作しなかった。

wordpressネタです。

タイトルに書いてある通り、キャッシュを生成するプラグイン
Quick Cache」がphpの5.3以降のみの対応でした。


Quick Cacheのバージョン更新を行うと、どの画面にもアクセスできなくなりました。
エラーメッセージを確認してみると次のようなものでした。

Fatal error: Uncaught exception 'Exception' with message 'This version of Quick Cache requires PHP v5.3+.' 
in /path/to/blog/wp-content/plugins/quick-cache/quick-cache.php:19 Stack trace: 
#0 /path/to/blog/wp-settings.php(203): include_once() 
#1 /path/to/blog/wp-config.php(93): require_once('/path/to/...') 
#2 /path/to/blog/wp-load.php(29): require_once('/path/to/...') 
#3 /path/to/blog/wp-admin/admin.php(30): require_once('/path/to/...') 
#4 /path/to/blog/wp-admin/index.php(10): require_once('/path/to/...') 
#5 {main} thrown in /path/to/blog/wp-content/plugins/quick-cache/quick-cache.php on line 19

最新版のプラグ印はphpが5.3以降でないと動作しないとの事。
で、問題の判定をしているquick-cache.phpの19行目付近を確認してみたところ、
次のようなソースコードになっていました。

if(!defined('WPINC')) // MUST have WordPress.
    exit('Do NOT access this file directly: '.basename(__FILE__));

if(version_compare(PHP_VERSION, '5.3', '<'))
    throw new exception('This version of Quick Cache requires PHP v5.3+.');

require_once dirname(__FILE__).'/quick-cache.inc.php';

……ええっと、これ、つまり……
ExceptionをCatchできていないので、
条件が合致していなかったら問答無用でシステムが落ちる仕掛けになっているという事ですよね?
しかもこの状態だと管理画面にも入れないので、このプラグインを無効化する操作もできませんでした。

私はロリポップのコントロールパネルでphpのバージョンを5.3に上げる事ができたので、それによって復旧しました。
(そもそも何で自分がバージョンを5.2のまま止めていたのか、それさえ思い出せないのですが……)

phpのバージョンを簡単には上げられない環境の場合、
一つ手前のバージョンであれば5.2でも動くか思います。
GitHubにてリリース管理がされており、
そこにあるバージョン131108に差し替えれば恐らく元に戻るかと思います。
(これは手動でWPプラグインのソースファイルを前のバージョンに戻す作業であるので、
行う場合はバックアップを取り、自己責任で行うようにして下さい)


11/28追記:
最新のバージョン131127でこの問題は修正されたようです。

TrackBack URL :

Leave a comment  

name

email

website

Submit comment