docker 环境每天storage文件夹提示没有权限

docker 环境storage文件每天提示

The stream or file "/var/www/livetalent/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied

已经给过 777 最高权限了第二天又报这个没有权限

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

laravel.loglaravel 中产生的 log,包括打印日志、异常日志等。http 访问一般是 nginxwww 用户,因此产生的日志是 www用户 的日志文件。而非 http 访问可能 首先 生成 root用户 日志文件,而随后 http 访问产生的日志再写入已存在的 root 身份的文件时,出现权限不够的报错,很可能会严重影响网站的运行。简单说就是存在 root 运行的程序并首先生成了 laravel.log

  1. 使用了 laravel 的任务调度,而没有指定用户crontab -u www,默认执行用户是 root
  2. 使用了 supervisor 等守护进程,比如守护 Job 队列程序,配置文件中没有指定 user=www,执行用户是 root
  3. 手动以 root 身份执行了 artisan 命令
3年前 评论
mouyong 3年前
讨论数量: 12
GalaxyNo_1

用户组

3年前 评论

root用户,授权 chown -R laradock:laradock /var/www

3年前 评论

执行文件更改了用户组

3年前 评论

这个问题 你要具体的描述使用环境和场景

3年前 评论
laogou (楼主) 3年前
arvin-hermit (作者) 3年前
arvin-hermit (作者) 3年前

应该是你有定时脚本,服务器执行的时候默认以 root 用户执行。这时候产生的日志就需要 root 权限,你的 storage 只有 www 权限。你试试把脚本以 www 用户执行,这样就没问题了

3年前 评论
sanders

每天的话,时间周期固定,估计是 crontab 执行用户的问题。

3年前 评论

laravel.loglaravel 中产生的 log,包括打印日志、异常日志等。http 访问一般是 nginxwww 用户,因此产生的日志是 www用户 的日志文件。而非 http 访问可能 首先 生成 root用户 日志文件,而随后 http 访问产生的日志再写入已存在的 root 身份的文件时,出现权限不够的报错,很可能会严重影响网站的运行。简单说就是存在 root 运行的程序并首先生成了 laravel.log

  1. 使用了 laravel 的任务调度,而没有指定用户crontab -u www,默认执行用户是 root
  2. 使用了 supervisor 等守护进程,比如守护 Job 队列程序,配置文件中没有指定 user=www,执行用户是 root
  3. 手动以 root 身份执行了 artisan 命令
3年前 评论
mouyong 3年前

php artisan cache:clear php artisan config:clear php artisan route:clear

3年前 评论

@php_yt 这个人写的多,所有这个人是对的。

3年前 评论

config/logging.php 对应的加上:'permission'=>0666 权限即就行了

3年前 评论
xini2603 (作者) 3年前

之前项目也遇到过类似情况,项目有两个容器,还有外部的supervisor 和crontab 当外部定时任务先执行时(日志文件创建规则是每天一个日志文件)会以宿主机的用户组:用户来创建文件,而容器里执行的任务产生的日志如果写入相同的通道时且容器的用户组:用户不同即会报错;解决方案:分离宿主机任务和容器内任务执行的日志即两个用不一样的日志通道配置这样他们写入的日志不会写到同一个文件里

3年前 评论
  • 应该是你用了wsl
  • 请在wls中给你映射的数据目录(一定是本机 而不是容器)
    sudo chown -R 999:999 livetalent/
  • 另外不要用wsl 权限恶心 另外速度超级慢
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!