【问题标题】:Setting up write permission in Laravel project在 Laravel 项目中设置写权限
【发布时间】:2021-05-30 02:27:03
【问题描述】:

我最近通过从 github 拉取项目,以非 root 用户身份在 DigitalOcean ubuntu 服务器上部署了一个 laravel 项目。然后我运行以下命令从项目根路径授予存储日志的权限

sudo chown -R $USER:www-data .

sudo find . -type f -exec chmod 664 {} \;

sudo find . -type d -exec chmod 775 {} \;

sudo chgrp -R www-data storage bootstrap/cache

sudo chmod -R ug+rwx storage bootstrap/cache

然后应用程序开始正常工作,日志按预期写入,日志看起来像这样

-rw-rw-r-- 1 elo www-data 79352 Feb 27 22:00 laravel-2021-02-27.log

但是当一个新的日志文件生成时,日志组又发生了变化,导致某些日志信息没有写入日志

-rw-rw-r-- 1 elo elo 901 2 月 28 日 08:00 laravel-2021-02-28.log

这可能是什么原因?看来我设置的权限不正确。权限应该如何设置?

【问题讨论】:

  • 必须更改nginx php-fpm 组或运行该命令的用户组
  • 你的意思是运行sudo usermod -a -G www-data elo ?我这样做了,但结果是一样的
  • 什么是日志网络服务或命令?
  • 如果命令使用这个 -> sudo usermod -g primarygroupname 用户名
  • 网络服务。当向端点发布帖子时,我希望将日志写入文件

标签: laravel ubuntu digital-ocean


【解决方案1】:

我也有相关问题,但我的问题是日志文件不可写(-r----x--t)。我仍然不知道真正的原因,但就我而言,要解决这个问题,我知道 2 个解决方案:

  1. 将 .env 中的 LOG_CHANNEL 更改为单个而不是堆栈/每日。

  2. 删除permissionconfig/logging.php中的配置

     'daily' => [
         'driver' => 'daily',
         'path' => storage_path('logs/laravel.log'),
         'level' => 'debug',
    //   'permission' => 777, //remove or comment this
         'days' => 14,
     ],
    

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2012-11-15
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多