所以,我成立了一個cronjob運行以下命令:PHP Cronjob - 權限被拒絕?
php /var/www/path/to/cron/do-stuff.php
的路徑是正確的。該目錄歸www-data
所有。
的腳本執行以下操作:
chdir(getcwd());
echo shell_exec('whoami');
$handle = fopen(uniqid('TEST_') . '.tst');
fwrite($handle, 'foo');
fclose($handle);
這是輸出試圖運行cron作業時,我得到:從外殼採用su www-data
執行此操作時
www-data
PHP Warning: fopen(TEST_4e15266d09fa2.tst): failed to open stream: Permission denied
然而 - 腳本執行得很好,並生成測試文件而不會出現呃逆。
任何想法,爲什麼這可能是?
編輯:我猜su www-data
可能是不必要的,因爲PHP將然而運行它運行,但我想,以防萬一。儘管如此,您可以從輸出中看到cron和腳本作爲www-data
執行。
賓果!我是個白癡。 'getcwd'正在報告'/ usr/share/webmin/cron'。 – Greg