Laravel8日志文件普通用户新建不了?
相关环境:Ubuntu + PHP7.4 + Laravel8.83.8
vagrant@ubuntu-xenial:~/www/admin$ php artisan command:abnormalOrder
我使用vagrant用户来运行定时任务,发现报错:
报错我知道,是因为没有权限,但是为什么普通用户就不能建文件呢?,补充一点:我的日志使用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 //允许其它用户也可写入
],
'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), 'days' => 14, 'permission' => '0666' ],
手机不知道怎么打反引号,将就看。 目录设了权限后,创建文件加一下权限,不然命令行要是用root执行的,写了log后,www就写不进去
创建文件对应的是 x + w 权限,x 对应 cd 命令进入目录,w 对应创建修改
脚本生成的日志和fpm的需要隔离的话,就不同用户执行,不隔离的话,防止权限问题,执行脚本的时候用相同用户执行就行。