当前位置: 代码迷 >> 综合 >> 使用 www-data 用户运行定时任务(cron)
  详细解决方案

使用 www-data 用户运行定时任务(cron)

热度:52   发布时间:2023-12-19 09:10:42.0

其实这个没啥好说的,就是记录下解决的过程(说得好像跟一篇水文似的…)。或者给遇到这类问题的小伙伴提供个思路。

痛点

我们在部署 web 服务时,经常用到定时任务。正常的流程就是直接执行下面的指令来配置定时任务

crontab -e

问题来了,正常情况下,这个指令在哪个用户下面执行,这个权限就是谁的(如果你听不懂我在说啥,那基本就是属于 root的)。

定时任务本身的配置也是个精细活,你可以阅读下 https://learnku.com/articles/25177 看看你之前用的姿势是不是还能优化。

常见问题之日志权限

这怕是最常见的问题了。定时任务出错了,记录日志到 storage/logs 里了,一般就是 laravel.log 文件。

此时 laravel.log 所属者就是 root 了。

用户通过浏览器访问我们网站,如果出错,以 www-data 身份尝试记录到 storage/logs/laravel.log,然后写不进去,一直报错,真香!

解决

打开谷歌搜索 run cron job as www-data。找到了文章 https://askubuntu.com/questions/189189/how-to-run-cronta

  相关解决方案