以 www-data 的身份执行 crontab 的计划任务

更新日期: 2018-06-14 阅读次数: 5986 分类: Linux

新建了一个 Laravel 的计划任务,配置好 crontab

* * * * * php /www/sunzhongwei/artisan schedule:run >> /dev/null 2>&1

同时,将当前登录用户,添加到了 www-data 的用户组,以防止无法访问 storage/logs 下的日志文件。

但是,执行了一段时间,导致 web 请求报错

file_put_contents(/www/sunzhongwei/storage/framework/cache/data/f1/6c/f16xxxx56b65501434d05bf1fc20c9fc8f9): failed to open stream: No such file or directo
ry

通过 ls -la 查看,可以发现该文件属于当前登录用户,而不是 www-data,用户组也不是 www-data 所属的用户组。

那就说明解决方法只有一个,就是以 www-data 的身份执行 laravel crontab 的计划任务。

对应的命令是

sudo crontab -u www-data -e

然后把上面的计划任务配置剪切过来就可以了。

测试环境

Ubuntu 16.04 Server

参考

https://askubuntu.com/questions/189189/how-to-run-crontab-as-userwww-data

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日