Linux

更改 VPS 上 apache 的文件夾權限

  • August 17, 2012

Symfony 2 配置一直在說

已檢測到重大問題,必須在繼續之前修復:更改“app/cache/”目錄的權限,以便 Web 伺服器可以寫入該目錄。更改“app/logs/”目錄的權限,以便網路伺服器可以寫入。

我的步驟:

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 伺服器、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?它至少需要 www-data 使用者可執行,該使用者才能訪問其內容:

$ chmod o+x /var/www/mysite

首先,正如其他人所說,您是否在檢查正確的文件?

Symfony 的錯誤資訊很糟糕。它應該指定它無法訪問的文件的完整路徑。您可以嘗試使用straceoflsof來查找文件。

其次,php 是否執行為www-data

如果您使用的是mod_php,則 php 以執行 apache 的使用者身份執行。但是您是否使用 ps 或 top 檢查過該使用者是什麼?

第三,舊文件是否以某種方式保持打開狀態?

在 UNIX 中,文件即使在刪除後也可以打開,並且只有在所有打開的文件句柄都關閉後才能完全刪除。Apache/php restart 或 reboot 應該解決這個問題。

四、你在執行apparmor/selinux嗎?

先嘗試禁用它們。

引用自:https://serverfault.com/questions/391709