為以前沒有接觸過nginx ,所以查了一天,查處原因有二:
一、網站根目錄
默認是在 /usr/local/nginx/html文件
配置在
location / {
root /home/www/wwwroot;
index index.html index.htm;
}
二、修改文件中對應的php配置部分
location ~ \.php$ {
root /home/www/wwwroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
特別需要注意的是:fastcgi_param這個參數默認的是$fastcgi_script_name;最好改為$document_root$fastcgi_script_name;我在實際配置中出現了php找不到需要解析文件而返回404或者500錯誤的問題。所以最好是帶上網站根目錄的路徑變數$document_root
㈡ 安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的.
安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的,應該是下面的原因造成的:
這個是因為index.html 文件目錄是nginx默認安裝目錄 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文檔裡面找到相應的問題。
可以按照下面測試更改:
location ~ .php$ {
root /data/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
nginx -t && nginx -s reload
㈢ nginx PHP文件不能正常訪問.
一般nginx默認配置中會是這個樣子的。這里有一個SCRIPT_FILENAME變數,但是fastcgi_params這個文件中是不包含該變數的,改變數的定義實際上是在fastcgi.conf文件中。
實際上可以把配置修改成如下的配置。
location~.php${
root/usr/share/nginx/html;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_intercept_errorson;
includefast_cgi.conf;
#可以增加rewrite,也可以不增加。
}
按如上的配置,如果訪問127.0.0.1:9000/a.php,則實際上根據root指令和fast_cgi.conf配置,nginx會通過fast_pass指令訪問/usr/share/nginx/html/a.php這個文件。
記得用root指令,指定站點的文檔根路徑。