我运行以下命令在我的 Ubuntu 12.04 Server 上的 /var/www 文件夹设置 ACL:
sudo usermod -g www-data abe
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
我使用 /var/www 文件夹中的 wget 下载了 Wordpress,并解压了下载的文件:
cd /var/www
wget http://wordpress.org/latest.zip
mv latest.zip wordpress.zip
unzip wordpress.zip
我在 mysql 中创建了一个新的数据库和用户,并尝试通过 Web 界面运行设置过程。
当我在 wordpress 中输入配置信息时,出现以下错误消息: 抱歉,但我无法写入 wp-config.php 文件。
当我运行 ls -la 时,我看到这些文件归我的用户 abe 所有,但它们属于组 www-data 的一部分。
每次我将新文件复制到 /var/www 时是否都必须运行 chmod 命令?
sudo chmod -R 775 /var/www
答案1
只需转到终端中 www 目录内的 wordpress 安装目录,并授予以 www-data 身份运行的 Web 服务器的写入权限
sudo chown -R www-data wordpress
答案2
我认为 WP-config.php 没有保存在根目录中。
尝试这样做:chgrp -r www-data wwww/
然后chmod -r g+w www/
它将递归地更改组,然后以递归方式向组添加写权限。
答案3
请注意,您这里不处理 ACL,只处理基本权限和成员资格。
您可以在这里:
- 使用该
www-data
帐户执行任务/var/www
(sudo -u www-data [command]
例如使用)。 - 使用
umask 002
将创建具有 775 权限的目录和具有 664 权限的文件(如果情况并非如此,否则您在这里不会遇到任何问题)。 - 使用真实 ACL(如果在文件系统上启用),例如,
find /var/www -type d -exec setfacl -m d:g:www-data:rwX {} \;
它将在目录 ( ) 上递归创建默认 ACL(d:
,因此它将被继承),对所有内容find -type d
具有读写访问权限( ),对目录具有执行访问权限( ),对组 ( )具有访问权限。您还可以在所有已创建的文件上添加此 ACL :。rw
X
g:
www-data
setfacl -R -m g:www-data:rwX /var/www
对于最后两点,建议您了解自己在做什么,否则如果出现问题,可能会在文件系统权限中造成很大的混乱。
答案4
当您解压文件时,它们会带有自己的权限,因此您需要编辑权限。但您可以编写一个 shell 脚本,它将为您完成所有过程。