问题

开发一个培训报名系统,需要定时关闭订单,发送上课通知等操作,于是接入了 Laravel 的定时任务。但实际运行时,出现 Laravel 无权限写入日志问题,导致应用异常崩溃的问题。

原因

服务器采用的是 linux,Laravel 定时任务是直接以 root 用户的身份执行的,而定时任务执行时创建了新日志文件,新文件的权限是 -rw-r--r-- 1 root root,这样的权限配置使得正常运行项目的 www 用户无法写入此日志文件,导致错误。

解决方法

经过多方查询,最后采用命令 sudo crontab -u www -e 以 www 用户身份配置定时任务解决问题。