所以,我成立了一个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