1

このように単純に実行すると、コマンドラインで完全に正常に実行される PHP スクリプトがありますphp /path/to/script/script.php。cron を使用してこのコマンドをスケジュールし、次crontab -eの行を追加するとします。

*/1 * * * * php /path/to/script/script.php 2>&1 >> /var/log/logfile.log

期待どおりに毎分実行され、コマンドラインで実行するのと同じように、すべての出力がログファイルに入れられます。しかし、スクリプトのいくつかの部分は機能していないようです。これらの特定の部分は、次のような行です。

system('mkdir /mnt/temp', $retVal);

また

exec('mkdir /mnt/temp');

/bin/mkdirルートとして実行する、影響を受けるすべてのスクリプトとフォルダーのアクセス許可を使用するなど、考えられるすべてのことを試しましたmkdir。system() からの戻り値は、CLI で実行する場合は 0、crontab で実行する場合は 1 です。

助言がありますか?

4

1 に答える 1

2

CLI と crontab の問題を解決できませんでしたが、cron 内で bash スクリプトを使用することで解決できました。そして、その bash スクリプトが PHP スクリプトを呼び出します。これは、スクリプトを実行する必要があるすべてのユーザーの下で魔法のように機能します。したがって、それがアクセス許可の問題であるかどうかはわかりません。

コメントありがとうございます

于 2013-01-24T12:01:09.817 に答える