- Created:
- Updated:
- 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
,给 local
和 public
添加设置权限,以防止 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
SGID 权限和 www-data 附加组
chown :www-data bootstrap/cache
chown :www-data storage
chown :www-data storage/app
chown :www-data storage/app/public
chown :www-data storage/framework
chown :www-data storage/framework/cache
chown :www-data storage/framework/cache/data
chown :www-data storage/framework/sessions
chown :www-data storage/framework/testing
chown :www-data storage/framework/views
chown :www-data storage/logs
chmod 2775 bootstrap/cache
chmod 2775 storage
chmod 2775 storage/app
chmod 2775 storage/app/public
chmod 2775 storage/framework
chmod 2775 storage/framework/cache
chmod 2775 storage/framework/cache/data
chmod 2775 storage/framework/sessions
chmod 2775 storage/framework/testing
chmod 2775 storage/framework/views
chmod 2775 storage/logs