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 的错误消息很差。它应该指定无法访问的文件的完整路径。您可以尝试使用strace
来lsof
查找文件。
其次,php 是否以 身份运行www-data
?
如果您使用的是mod_php
,则 php 将以运行 apache 的用户身份运行。但是您是否使用 ps 或 top 检查过该用户是什么?
第三,旧文件是否以某种方式保持打开状态?
在 UNIX 中,文件即使在删除后仍可打开,并且只有在关闭所有打开的文件句柄后才会完全删除。Apache/php 重新启动或重启应该可以解决这个问题。
第四,您是否运行 apparmor/selinux?
首先尝试禁用它们。
答案3
问题是 plesk 弄乱了权限。我从 plesk 中删除了域并创建了自己的虚拟主机。现在一切都按预期运行。
答案4
上面的某些文件夹可能没有适当的权限。请检查 /var 和 /var/www 的权限。