Ubuntu
Nginx 在根目錄下提供文件,但不在子目錄下
我在 Ubuntu 11.10 上使用 php-fpm 和 SELinux 執行 nginx。該網站通過 https/ssl 提供服務
提供直接位於任何站點根目錄下的內容,但在嘗試訪問子目錄時,以下內容被添加到
/var/log/nginx/error.log
:"/home/mydomain/public_html/{subdirectory}" failed (13: Permission denied)
我試過關閉 SELinux (
setenforce 0
)。不用找了。
- 伺服器正在執行
www-data
並且使用者mydomain
屬於 groupwww-data
。- php-fpm 以使用者身份執行
mydomain
- 權限:
/home
目錄是0750
,子目錄是0755
站點配置如下:
server { listen 443; root /home/mydomain/public_html; index index.html index.htm index.php; server_name www.mydomain.com; location / { try_files $uri $uri/ /index.php; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001 location ~ \.php$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; # include /etc/nginx/fastcgi_params; } ssl on; ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; } server { listen 80; server_name *.mydomain.com; rewrite ^(.*) https://www.mydomain.com$1 permanent; }
這是
ls -al /home/mydomain/public_html
所要求的輸出:drwxr-xr-x. 3 mydomain mydomain 4096 2011-12-07 17:49 . drwxr-x---. 6 mydomain mydomain 4096 2011-11-14 08:33 .. drwxr-xr-x. 3 mydomain mydomain 4096 2011-12-06 16:23 subdirectory -rw-r--r--. 1 mydomain mydomain 55 2011-12-07 17:50 index.php -rw-r--r--. 1 mydomain mydomain 20 2011-12-07 17:49 info.php
這是我的子目錄的內容:
drwxr-xr-x. 3 mydomain mydomain 4096 2011-12-06 16:23 . drwxr-xr-x. 3 mydomain mydomain 4096 2011-12-07 17:49 .. drwxr-xr-x. 11 mydomain mydomain 4096 2011-12-06 16:26 html -rw-r--r--. 1 mydomain mydomain 36 2011-12-06 16:23 index.php
感謝您的任何幫助。另外,如果發現任何其他配置問題,請發表評論。
啊哈,我沒有註意到 /home/* 上的 750。我認為這就是問題所在。您的 php 文件對於 php-fpm 是可讀的,但對於 nginx 是不可讀的。內容的完整路徑也必須對 nginx 可讀。如果可能,將權限設置
/home/mydomain
為 755,或將內容移動到其他目錄(如,/var/www
)。