3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(PHP)XServerでXOOPSが真っ白に。。。

レンタルサーバのXServer上で動かしてるXOOPSが真っ白になっているということで調査開始しました。

まず、PHPエラーを調べるために、phpMyAdminMySQLxoops_config テーブル conf_name列= debug_mode レコードの conf_value の値を1にします。

これでリロードするとこんなエラーが。。

Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'

in /home/ユーザ名/public_html/xoops/modules/Analyzer/preload/Preload.class.php on line 10

なんか文法エラーとか言ってます。

このファイルは更新した記憶はまったくないので、もしかしてと思って phpinfo で実行環境の情報を探ってみました。

すると、PHP5 で動かしてたはずなのに、PHP4 になってます。

とりあず、PHP5 に戻せば動くと思って、ServerPanel の "PHP Ver.切替" より PHP5 に戻しました。

その後なぜPHP5から4になってしまったかの調査です。

調べていくと、Xserver は PHP4 と 5 の切り替えは、public_html/.htaccess の中で

AddHandler x-httpd-php5 .php .phps

という定義で行っていることが分かりました。

つまり、この記述がないと PHP4 で動くみたいです。

そういえば、PEAR の include_path を設定するときにこの辺触ったので、その時にこの記述を上書きしてしまったことが今回の障害の原因のようです。