FC2 VPS サーバー ライト Linux版を利用しています
cronの設定が上手くいかず困っています。
直接ブラウザでaction.cgiを開くと、正しく動作するようですが、
cronでの設定方法が上手くいきません。
pleskというアプリケーションでcrontabという項目を設定することでできそうなんですが・・・
cgi自体が、cgi-binとういフォルダ内でないと動作しないようなので、
ミルキーステップ自体をその中にフォルダを切ってインストールしてます。
で、今日そのパスを
/var/www/vhosts/取得したドメイン/cgi-bin/ms/action.cgi
で設定すると、
Fri Mar 25 22:09:01 2011] action.cgi: Can’t locate Unicode/Japanese.pm in @INC (@INC contains: ./ext_lib ./asp_opt /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /var/www/vhosts/取得したドメイン/cgi-bin/ms/action.cgi line 17.
[Fri Mar 25 22:09:01 2011] action.cgi: BEGIN failed–compilation aborted at /var/www/vhosts/取得したドメイン/cgi-bin/ms/action.cgi line 17.
Content-type: text/html
<h1>Software error:</h1>
<pre>Can’t locate Unicode/Japanese.pm in @INC (@INC contains: ./ext_lib ./asp_opt /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /var/www/vhosts/取得したドメイン/cgi-bin/ms/action.cgi line 17.
BEGIN failed–compilation aborted at /var/www/vhosts/取得したドメイン/cgi-bin/ms/action.cgi line 17.
</pre>
<p>
For help, please send mail to this site’s webmaster, giving this error message
and the time and date of the error.
</p>
というエラーになりました。
cronの設定を行う時は、取扱い説明書にもありますように、絶対パスで直接「action.cgi」を指定するのではなく、「action.cgi」が入っているディレクトリにカレントディレクトリを移動してから実行してください。
cron実行時は、内部的にmsディレクトリの外からaction.cgiを実行しようとするので、action.cgi内で指定しているモジュールのインクルードパスが正常に認識されません。
したがって、cronに指定するコマンドは以下のようになります。
cd /var/www/vhosts/取得したドメイン/cgi-bin/ms; ./action.cgi
※↑cd~;で、カレントディレクトリをmsに移動して、その後action.cgiを実行しています。
また、下記も併せてご参照ください。
http://milkystep.com/ms_poc/?p=256
.htaccessのファイルのアップロードができなかったので、仕方なく、ルート外のcgi専用フォルダに強引にインストールしていたのですが、
.htaccessのアップロード方法がわかったので、正しくルートに設置してインストールして、とりあえず正常に動いているようです。
cronのコマンド設定も教えていただいき有難うございました。