Laravel8日志文件普通用户新建不了?

相关环境:Ubuntu + PHP7.4 + Laravel8.83.8

vagrant@ubuntu-xenial:~/www/admin$ php artisan command:abnormalOrder

我使用vagrant用户来运行定时任务,发现报错:

Laravel8日志文件普通用户新建不了?

报错我知道,是因为没有权限,但是为什么普通用户就不能建文件呢?,补充一点:我的日志使用daily,现在系统/mnt/log/etc/etc-2022-06-10.log还没有,我不知道为什么这里会报没有权限的错误。如果etc-2022-06-10.log已经存在,他是不会报错的,而且还能正常写入日志。
我的nginx,fpm的用户都是www-data,不知道和这个有没有关系?

我的问题是:为什么vagrant用户没有创建文件的权限?以后上线了,我又该选哪个用户执行代码呢?因为我不知道使用什么样的用户去执行代码才能创建文件?

附加日志配置代码:

'daily' => [
  'driver' => 'daily',
  'path' => env('LOG_FILE', storage_path('logs/laravel.log')),
  'level' => env('LOG_LEVEL', 'debug'),
  'days' => 0,
  'permission' => 0666 //允许其它用户也可写入
],
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 11
随波逐流
// 修改所有者、所属组
// @see https://www.runoob.com/linux/linux-comm-chown.html
chown -R www-data:www your_project/

// 修改执行权限
// @see https://www.runoob.com/linux/linux-comm-chmod.html
chmod -R 755 your_project/storage/
1年前 评论
bluememory (楼主) 1年前
随波逐流 (作者) 1年前

'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), 'days' => 14, 'permission' => '0666' ],

手机不知道怎么打反引号,将就看。 目录设了权限后,创建文件加一下权限,不然命令行要是用root执行的,写了log后,www就写不进去

1年前 评论
bluememory (楼主) 1年前
小学毕业生 (作者) 1年前
bluememory (楼主) 1年前

创建文件对应的是 x + w 权限,x 对应 cd 命令进入目录,w 对应创建修改

1年前 评论
bluememory (楼主) 1年前
php_yt (作者) 1年前

脚本生成的日志和fpm的需要隔离的话,就不同用户执行,不隔离的话,防止权限问题,执行脚本的时候用相同用户执行就行。

1年前 评论

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