Laravel storage logs 日志文件权限引起的问题

阅读 (304)
Laravel前后端分离,当接口出现错误时,前端报500错误,并提示存在跨域问题。

laravel中的cors都是按正确的配置,且如果接口是正常响应的情况下,前端没有任何问题,但只要程序中使用throw new ErrorException (这里的ErrorException是我重写的异常抛出规则抛出异常时,前端就提示跨域了。

最终经过调试发现,是laravel  log日志没有权限写入引起的。

1.将storage目录的所有权改成nginx用户权限,如:

chown -R www:www storage
chown -R www:www bootstrap/cache

2.清一下缓存和包自动发现(这也很关键)

php artisan package:discover
php artisan config:clear
php artisan cache:clear

3.如果日志生成规则是daily,在config/logging.php中,将daily的permission设置也给加上

'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
            'days' => 14,
            'permission' => 0664,
        ],
更新于:2023-02-16 10:01:32
返回顶部