最近、共有レンタルサーバーの「X2」を借りてみた。
で、X2でcron実行した時にエラーになったので、その解決方法を残しておく。

X2は高速化設定というのを設定するとeAcceleratorが使えるようになる。
eAcceleratorを使用した状態で、cronを実行すると以下のようなエラーが出る。
「EACCELERATOR: Open for write failed for “/tmp/eaccelerator/9/d/eaccelerator-5502.080673434”: No such file or directory」
eAcceleratorのtmpファイルががががってエラーになっていた。

これはeAcceleratorがサーバー側の設定を読み込みに行ってしまうことによって起こるエラー。
なので、個別にphp.iniを作って、そっちを読み込むようにしてやると正常に動作する。
今回のエラーでphp.iniを修正する箇所は、eAcceleratorのtmpディレクトリの場所を自分用のディレクトに変更する部分だけ。

修正した個別のphp.iniを読み込む方法はcronのコマンドで -c php.iniまでのパスで読み込むことが出来る。

こんな感じ。
/usr/bin/php5.3 -c /home/サーバーID/ドメイン/php/php.ini /home/サーバーID/ドメイン/実行するファイルパス

ちなみにeAcceleratorはエラーとなるが、cron処理自体は正常に動作してしまうため、
エラーのログを確認していないと気づかないので気をつけて。

X2 – http://www.xtwo.ne.jp/
X2は株式会社ベットが運営するレンタルサーバー
株式会社ベットはその他にもXserverやシックスコア(sixcore)も運営している。