laravel 日志文件权限问题

laravel 日志每天记录一个文件。

root用户crontab中,运行了 artisan 命令行任务。

若 artisan 命令先产生的日志,日志文件的创建者会是 root,权限是644,这样就造成后面产生的日志没有权限写入这个文件了。

请问有什么好的解决办法?

阅读 6.7k
3 个回答

Laravel 5.6.10 之后的版本支持对日志文件的权限配置,添加 config/logging.php 文件中的 permission 字段配置:

'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 7,
        'permission' => '0664',
    ],

dailysingle 的日志写入模式,都支持对 permission 字段的配置。关于这个问题更多的解决思路,可以查阅 stackoverflow的讨论

crontab可以指定用户运行吧,比如
sudo crontab -u www-data -e

这样既可,把artisan和php-fpm产生的日志分隔开来

        'daily' => [
            'driver'     => 'daily',
            'path'       => storage_path('logs/lumen-'.php_sapi_name().'.log'),
            'level'      => 'debug',
            'days'       => 14,
            'permission' => 0644
        ],
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题