我在VPS上安装了Debian 9。我在服务器上安装了灯。我以root身份登录,创建了一个新站点"/var/www/example.com“,我看到权限为"root:root”。网页显示在浏览器中。
我创建了一个将当前时间写入文件的cron.php文件。在crontab中,我有/usr/bin/php 如果我通过终端运行这个命令,一切都正常。但是,Crontab返回一个错误,因为它没有写权限。但是,Crontab作为root运行。该目录有777个权限。
我尝试将/var/www设置为www-data:www-data和crontab (crontab -u www-data -e)相同。结果是相同的,cron运行但不写入文件。
编辑:我发现如果脚本包含: file_put_contents('output.txt','xxx');由cron创建的文件位于root中。如果我设置了完整的路径,那么一切都很好: file_put_contents('/var/www/exmaple.com/output.txt','xxx');有任何方法来修改这种行为吗?
发布于 2020-02-27 09:17:34
您可以创建如下样例脚本:
#!/bin/bash
source ~/.bashrc #or use .bash_profile
/usr/bin/php /var/www/example.com/cron.php >>/path/to/output并将其添加为cron记录:
0 * * * * /path/to/script/shhttps://stackoverflow.com/questions/60421147
复制相似问题