fairycat

Updated:
Created:
Fairycat

laravel5.*目录写权限

给需要写入的目录设置权限。目录权限设为 2777 或者 3777。若项目的管理者为非 root 用户,设置 g+s 可以使得 php 上传或者生成的文件和文件夹所属管理组,设置 o+t 可以防止其他用户删除文件。对其他用户设置了 w 权限,安全度不高,但除了使用 ACL 之外就暂时如此了。 需要设置的目录如下:

  • bootstrap/cache
  • storage
  • storage/app
  • storage/app/public
  • storage/framework
  • storage/framework/cache
  • storage/framework/cache/data
  • storage/framework/sessions
  • storage/framework/testing
  • storage/framework/views
  • storage/logs

添加 filesystems 配置 config/filesystems.php,给 localpublic 添加设置权限,以防止 php 上传或者生成的文件用户无法管理,只是所属组但没有 w 权限管理者不方便管理。

    'permissions' => [
        'file' => [
            'public' => 0664,
            'private' => 0660,
        ],
        'dir' => [
            'public' => 0775,
            'private' => 0770,
        ],
    ],

命令:

chmod 3777 bootstrap/cache
chmod 3777 storage
chmod 3777 storage/app
chmod 3777 storage/app/public
chmod 3777 storage/framework
chmod 3777 storage/framework/cache
chmod 3777 storage/framework/cache/data
chmod 3777 storage/framework/sessions
chmod 3777 storage/framework/testing
chmod 3777 storage/framework/views
chmod 3777 storage/logs

若有其他需要可写权限的目录再另外设置。

在 Ubuntu 需要设置 Apache2 的 umask,否则产生的缓存目录无法使用 cache:clear 删除文件缓存。

设置方法例子,添加 systemd 的配置文件 /etc/systemd/system/apache2.service.d/umask.conf

[Service]
UMask=0002

如果不使用SGID特殊权限,也可以直接给添加 www-data 附加组

sudo usermod user -a -G www-data
chmod 0777 bootstrap/cache
chmod 0777 storage
chmod 0777 storage/app
chmod 0777 storage/app/public
chmod 0777 storage/framework
chmod 0777 storage/framework/cache
chmod 0777 storage/framework/cache/data
chmod 0777 storage/framework/sessions
chmod 0777 storage/framework/testing
chmod 0777 storage/framework/views
chmod 0777 storage/logs

评论

Name

Email

Website

Subject