共有サーバでよくある話
共有サーバを借りていると
下記のようなことってたまにありません?
いきなりサーバの環境に変更があって、
サーバに入れてるWebアプリケーションが動作しなくなったよ。
こちらの不手際じゃないって分かってると言ってくれてるけど、
お客様のそういう気遣いが逆にいてーよ。
先日、
私が関わっているWebサイトでもそのようなことが発生しました。
突然電話がなって、
Webサイトが白くなって表示されないんですよ。
何か、
共有サーバの環境が変更になったという通知はありました。
とりあえず通知箇所に対応するように.htaccessを書き換える。
サイトは表示されない!
何だと!
他に変更箇所があるだと!
とりあえずCMS本体を調査してみると
どうやらSOY2DAOのところに問題があることが分かった。
SOY2フレームワークの解説 1回目 SOY2DAO(1/2)
SOY2フレームワークの解説 1回目 SOY2DAO (2/2)
SOY2DAOは
/**
* @entity
*/
上記のようにコメント内にある@以下の内容を解釈しなきゃいけないので、
Reflectionクラスが利用できなくなったのか?
と判断しphpinfo()でサーバ環境を調べてみた。
とりあえず文字列検索でreflectionと入力してみたら、
速攻でReflectionの記述が引っ掛かった。
おいおい…
Reflectionクラスが使用できないことが原因じゃないのかよ!
そういや、
$obj = new Reflection()の箇所でエラーが出てなかったな。
その時点でReflectionクラスがあることに気付け!
とりあえず、
処理が止まっている箇所を引き続き探してみると
Reflectionクラスの関数を実行させてfalse!
やっぱりReflection付近に問題がある。
もうわかんねーと思った時、
職場の人からeAcceleratorっていう
コメントの記述を無視してPHPの高速化を図る
という設定があることを教えてもらった。
早速php.iniでeaccelerator.enableの値を0にしてみたら
公開側ページも管理画面も表示されるようになった。
マジ、
こういう環境の変更があった場合に通知がないのは勘弁してよ。
原因を見つけるために3時間近くかかったよ…
いきなりSOY CMSが動かなくなったという時に
eAcceleratorの設定を調べてみると良いですよ。