PHPのアップデート

私のウェブサイト http://shirotakeda.org/ はさくらのレンタルサーバ上でMODxを利用して作成しています。今まで問題なく動いていたのですが、今日ページの表示がおかしくなるという障害が生じました。そう言えば、さくらからPHPのバージョンを上げるというような連絡が来ていたので確認してみたところ、ちょうど今日がその日でした。

MODxは他の多くのCMSと同じように中でPHPを利用するようになっているので、そのPHPのアップデートが障害の原因だろうとはすぐに想像がつきました。そこで試しに新しいPHP5.26からこれまで利用してきたPHP4.48に設定を変えたところ正常にページが表示されたので、PHPの変更が原因ということは確認できたのですが、その対応方法がよくわかりません。PHP4に戻せば一応利用できるのですが、PHP4は既にメンテナンスが打ち切られセキュリティホール等の対応はしないらしいので、できれば使いたくありません。

現在利用しているMODx(0.9.6.1p2)がPHP5に対応していないだけだろうと思い確認してみたところ、ちゃんとPHP5にも対応しているバージョンでした(よく考えてみると最新版のMODxなのでPHP5に対応していないわけはないですよね)。他に原因は全く思いつかないのでネットで検索してみましたが、同じような問題に直面しているような人は見つかりません。完全にお手上げで困ったのですが、PHPのエラーログをとる方法が http://faq.sakuratan.com/wiki/wiki.cgi?cgi%25a4%25c8php#i18 にのっていました。ログを取れば何が原因かわかるかもと思い、この手順に従ってログを取ってみたところ、以下のようなエラーが出力されていました。

PHP Parse error:  syntax error, unexpected T_VARIABLE in /manager/includes/document.parser.class.inc.php(745) : eval()'d code on line 51

このエラーメッセージで検索してみたところ http://modxcms.com/forums/index.php?action=printpage;topic=23216.0 というページに、MODxのSearch HighlightingというPlug-inが原因だというようなことが書かれていました。このSearch Highlightingが何をするPlug-inなのかさっぱりわかりませんが、私のMODxの設定を確認するとこれが有効になっていましたので、無効に変更したところ正常にページが表示されるようになりました。

いまだ原因はよくわからないのですが、とりあえず一件落着。

それにしてもこのPHPのアップデートが原因なのかはっきりしませんが、ここ二日くらいさくらのサーバが非常に重く、ページの表示にものすごく時間がかかります。