更改 VPS 上 apache 的文件夹权限

更改 VPS 上 apache 的文件夹权限

Symfony 2 配置一直说

已检测到重大问题,必须先修复才能继续:更改“app/cache/”目录的权限,以便 Web 服务器可以写入。更改“app/logs/”目录的权限,以便 Web 服务器可以写入。

我的步骤:

rm -rf app/cache/*
rm -rf app/logs/*

chown -R www-data:www-data app/cache
chown -R www-data:www-data app/logs

通过 ftp,我将此文件夹的权限更改为777。Apache 作为 www-data 运行,并以 www-data 作为组。

但文件夹仍然不可写,symfony 2 仍然会打印此消息。有什么想法吗?

我正在运行 Ubuntu 10.04 Server、Apache 2 和 PHP 5.3.x。由于我在 VPS 上,因此无法将 acl 添加到挂载选项。

ls -al app/cache

给出

total 8
drwxrwxrwx 2 www-data www-data 4096 May 25 00:10 .
drwxrwxr-x 6 www-data www-data 4096 May 25 00:10 ..

ls -al app/cache

给出

total 64
drwxrwxrwx 2 www-data www-data  4096 May 25 00:10 .
drwxrwxr-x 6 www-data www-data  4096 May 25 00:10 ..
-rwxrwxrwx 1 www-data www-data 40235 May 23 06:33 dev.log
-rwxrwxrwx 1 www-data www-data 15029 May 23 06:14 prod.log

命令

ps aux | grep apache

给出

root     12012  0.0  0.8 257952 18356 ?        Ss   20:32   0:00 /usr/sbin/apache2 -k start
www-data 12013  0.0  0.2 154324  4836 ?        S    20:32   0:00 /usr/sbin/apache2 -k start
www-data 12019  0.0  1.5 278124 32924 ?        S    20:32   0:00 /usr/sbin/apache2 -k start
www-data 12020  0.2  1.5 278116 33348 ?        S    20:32   0:02 /usr/sbin/apache2 -k start
www-data 12171  0.0  1.5 278380 33172 ?        S    20:37   0:00 /usr/sbin/apache2 -k start
www-data 12173  0.2  1.5 277568 32740 ?        S    20:37   0:01 /usr/sbin/apache2 -k start
www-data 12175  0.0  1.5 278392 33396 ?        S    20:38   0:00 /usr/sbin/apache2 -k start
www-data 12178  0.3  1.5 277604 32816 ?        S    20:38   0:01 /usr/sbin/apache2 -k start
www-data 12204  0.2  1.5 277832 33048 ?        S    20:39   0:00 /usr/sbin/apache2 -k start
www-data 12210  0.5  1.8 283748 38960 ?        S    20:40   0:01 /usr/sbin/apache2 -k start
www-data 12212  0.3  1.5 277832 33088 ?        S    20:40   0:00 /usr/sbin/apache2 -k start
www-data 12214  0.2  1.5 278132 33352 ?        S    20:40   0:00 /usr/sbin/apache2 -k start
www-data 12215  0.0  0.5 258216 10780 ?        S    20:40   0:00 /usr/sbin/apache2 -k start
www-data 12223  0.0  0.5 258084 10676 ?        S    20:42   0:00 /usr/sbin/apache2 -k start
root     12227  0.0  0.0   6164   664 pts/0    S+   20:44   0:00 grep apache

有什么想法可以解决这个问题吗?

答案1

上的权限是什么/var/www/mysite?它至少需要由 www-data 用户执行,该用户才能访问其内容:

$ chmod o+x /var/www/mysite

答案2

首先,正如其他人所说,您正在检查正确的文件吗?

Symfony 的错误消息很差。它应该指定无法访问的文件的完整路径。您可以尝试使用stracelsof查找文件。

其次,php 是否以 身份运行www-data

如果您使用的是mod_php,则 php 将以运行 apache 的用户身份运行。但是您是否使用 ps 或 top 检查过该用户是什么?

第三,旧文件是否以某种方式保持打开状态?

在 UNIX 中,文件即使在删除后仍可打开,并且只有在关闭所有打开的文件句柄后才会完全删除。Apache/php 重新启动或重启应该可以解决这个问题。

第四,您是否运行 apparmor/selinux?

首先尝试禁用它们。

答案3

问题是 plesk 弄乱了权限。我从 plesk 中删除了域并创建了自己的虚拟主机。现在一切都按预期运行。

答案4

上面的某些文件夹可能没有适当的权限。请检查 /var 和 /var/www 的权限。

相关内容