アプリ版:「スタンプのみでお礼する」機能のリリースについて

さくらインターネットのCRON機能で
cd (対象ディレクトリ); /usr/local/bin/php -f (phpの名前)コマンドで
PHPを自動的に実行しています。
その PHPには
system("cd /zipファイルのあるパス/; unzip -Z hoge.zip");
というコマンドが実行されるようになっています。
(本来は、zipの解凍をしたいのですがテスト的にまず、ファイルの内容を表示)

このphpを直接ブラウザ上で実行する場合は、うまく動くのですが
CRON上で動かした場合は、unzip: not found
というエラーが帰ってきます。

また、CRONのコマンド実行フォームにphp実行コマンドではなく、直接
"cd /zipファイルのあるパス/; unzip -Z hoge.zip"
を実行しても unzip: not found が出てきてしまいます。

/home/[ユーザー名]/www/・・・と
絶対パスを指定しているので、パスは合っているかと思います。

unzip コマンドを実行するには予め何かを実行しないといけないのでしょうか?
何故、unzip: not found が出てしまうのか
アドバイスよろしくお願いいたします。

サーバーOSバージョン
FreeBSD 7.1-RELEASE-p16 i386

A 回答 (4件)

unzipを/usr/local/bin/unzip とフルパスで指定してください。



あるいは/usr/local/binにパスを通す。
方法:crontabの最初に、こう書く。
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin;
を記述に足したところうまくいきました!
ありがとうございます。

お礼日時:2013/03/22 15:23

>unzip コマンドを実行するには予め何かを実行しないといけないのでしょうか?


>何故、unzip: not found が出てしまうのか

cron動作時のPATHにunzipのあるパスが含まれているかは確認されましたか。
    • good
    • 0
この回答へのお礼

回答有り難うございます。
which コマンドとかを使ったらいいんでしょうか?
おそらく、含まれてなかったんだと思います。

お礼日時:2013/03/22 16:20

unzipがさくらのFreeBSD上にあるんですか?普通にインストールされたFreeBSDにはunzipコマンドは入ってないのでPortsからいれてきますが。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
さくらではunzipはサポートされているようです。

お礼日時:2013/03/22 16:21

まず「unzip にパスが通っているかどうか」を確認するんだろうなぁ.



「/home/[ユーザー名]/www/・・・と
絶対パスを指定しているので、パスは合っているかと思います。」
の「絶対パス」って, 何の「絶対パス」なの?

この回答への補足

>「絶対パス」って, 何の「絶対パス」なの?

回答有り難うございます。
ZIPファイルの置いてあるディレクトリのパスです。
"cd /zipファイルのあるパス/; unzip -Z hoge.zip"
の zipファイルのあるパス の部分にあたります。

補足日時:2013/03/21 18:04
    • good
    • 0
この回答へのお礼

回答有り難うございます。

お礼日時:2013/03/22 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!