问下laravel报错后生成的日志文件的权限如何自定义?

是这样的,我执行定时任务的用户是root用户,
php artisan schedule:run ,然后生成的laravel-2022-12-23.log文件的用户和用户组是root,然后是 644权限
然后我接口的用户是www,这样导致当,定时任务产生的log日志,我接口要生成日志就写不进去,报权限错误,所以我想问下能不能在生成日志的时候能够自定义用户和用户组,或者能自定义权限?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
1年前 评论
donggan (楼主) 1年前
donggan (楼主) 1年前
sagdfagdhs (作者) 1年前
讨论数量: 12

执行定时任务使用 www

1年前 评论
donggan (楼主) 1年前
Alone88 (作者) 1年前
donggan (楼主) 1年前

执行 php artisan schedule:run 时使用和 PHP-FPM 同样的用户不就可以了么!

有条件的,建议将定时任务和 Web 服务在独立的服务器上运行。

1年前 评论
1年前 评论
donggan (楼主) 1年前
donggan (楼主) 1年前
sagdfagdhs (作者) 1年前

建议 crontab -u www -e

1年前 评论

定时任务 使用www用户去调用就不会有这样的问题了.

1年前 评论

配置log的Tap就可以了

#config/log.php
'daily' => [
    'driver' => 'daily',
    'path' => storage_path('logs/day.log'),
    'level' => env('LOG_LEVEL', 'debug'),
    'days' => 14,
    'tap' =>[\App\Tap\TapChannelLogging::class],
    'permission'=>0664
],

#TapChannelLogging.php
/**
 * Customize the given logger instance. * * @param Logger $logger
  * @return void
 */public function __invoke(Logger $logger)
{
    foreach ($logger->getHandlers() as $handler) {
        if ($handler instanceof RotatingFileHandler) {
            $sapi = php_sapi_name() == 'cli' ? '-cli':'';
            $handler->setFilenameFormat("{filename}$sapi-{date}", 'Ymd');
        }
    }
}

#生成日志是这样了的

-rw-rw-r-- 1 www-data www-data   167214 Dec 29 09:51 day-20221229.log
-rw-rw-r-- 1 xxx     www-data      1940437 Dec 29 09:51 day-cli-20221229.log
1年前 评论

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