Linux
更改 VPS 上 apache 的文件夾權限
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 的錯誤資訊很糟糕。它應該指定它無法訪問的文件的完整路徑。您可以嘗試使用
strace
oflsof
來查找文件。其次,php 是否執行為
www-data
?如果您使用的是
mod_php
,則 php 以執行 apache 的使用者身份執行。但是您是否使用 ps 或 top 檢查過該使用者是什麼?第三,舊文件是否以某種方式保持打開狀態?
在 UNIX 中,文件即使在刪除後也可以打開,並且只有在所有打開的文件句柄都關閉後才能完全刪除。Apache/php restart 或 reboot 應該解決這個問題。
四、你在執行apparmor/selinux嗎?
先嘗試禁用它們。