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 //允许其它用户也可写入
],
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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/
3周前 评论
bluememory (楼主) 3周前
随波逐流 (作者) 3周前

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

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

3周前 评论
bluememory (楼主) 3周前
yangjisen (作者) 3周前
bluememory (楼主) 3周前

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

3周前 评论
bluememory (楼主) 3周前
php_yt (作者) 3周前

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

3周前 评论

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