更改VPS上的apache的文件夹权限

Symfony 2configuration不断说

主要问题已被检测到,必须在继续之前修复:更改“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数据作为组运行为www数据。

但是文件夹仍然不可写,而symfony 2仍然会打印这个消息。 任何想法为什么?

我运行Ubuntu 10.04服务器,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 

任何想法如何处理这个问题?

/var/www/mysite上的权限是多less? 它至less需要由www-data用户可执行,以便该用户访问其内容:

 $ chmod o+x /var/www/mysite 

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

Symfony的错误信息很差。 它应该指定它无法访问的文件的完整path。 您可以尝试使用lsof strace来查找文件。

其次,PHP运行为www-data

如果你使用的是mod_php ,那么php就像运行apache的用户一样运行。 但是,你有检查使用ps或顶部是什么用户是?

第三,这些旧文件是不是打开了?

在UNIX中,一个文件即使在删除后也可以打开,只有在所有打开的文件句柄closures后才能完全删除。 Apache / PHP重新启动或重新启动应该照顾这个。

第四,你运行apparmor / selinux?

先尝试禁用它们。

问题是,plesk搞乱了权限。 我从plesk中删除了域名,并创build了自己的虚拟主机。 现在一切都像预期的一样工作。

也许上面的一些文件夹没有适当的权利。 检查/ var和/ var / www的权限。