このように単純に実行すると、コマンドラインで完全に正常に実行される 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 です。
助言がありますか?