配置好nginx,啓動nginx,設置按照FastCGI的默認配置,配置好,訪問php文件。php
curl -i http://localhost/test.phphtml
結果提示No input file specified,可是我在/usr/local/nginx/html/目錄下的確有test.php文件。個人配置以下:nginx
location ~ \.php$ {
root html;
#echo $fastcgi_script_name;
charset utf8;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}curl
搜了一下,發現還得在fastcgi_param這指定目錄,正確的應該是:url
location ~ \.php$ {
root html;
#echo $fastcgi_script_name;
charset utf8;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}spa
因此就算把php目錄配置爲其餘目錄,依然須要在fastcgi_param SCRIPT_FILENAME添加上路徑名,能夠把$document_root設置爲須要設置的目錄,或者直接寫:htm
fastcgi_param SCRIPT_FILENAME /the path$fastcgi_script_name;ip
nginx配置文件中FastCGI的默認配置是:ci
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}input
我以前就直接寫這個配置結果一直,出錯