设置或修复文件权限

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.1,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

var /运行应用程序时项目的目录。在dev环境,bin /控制台公共/ index . php文件使用umask ()以确保目录是可写的。这意味着在本地机器上开发应用程序时不需要配置权限。

然而,使用umask ()在生产中不被认为是安全的。这就是为什么您经常需要在生产服务器中显式地配置一些权限的原因,如本文所述。

setfacl(Linux / BSD)

使用访问控制列表(ACL)权限是最安全的和推荐的方法var /目录可写的。您可能需要安装setfacl启用ACL支持在使用此方法之前,在您的磁盘分区上。然后,使用下面的脚本来确定您的web服务器用户并授予所需的权限:

1 2 3 4 5 6 7
HTTPDUSER=$(ps axo user,comm | grep -E(一)pache | [h] ttpd | [_] www | [w] ww-data | [n] ginx”| grep -v root | head -1 | cut -d\ -f1)#如果这不起作用,尝试添加' -n '选项#设置未来文件和文件夹的权限sudo setfacl -dR -m u:HTTPDUSER:rwX -m u:$(whoami):rwX var#设置现有文件和文件夹的权限sudo setfacl -R -m u:HTTPDUSER:rwX -m u:$(whoami):rwX var

这两个命令都为系统用户(运行这些命令的用户)和web服务器用户分配权限。

请注意

setfacl在NFS挂载点上不可用。但是,出于性能原因,强烈不建议在NFS上存储缓存和日志。