原因可能很多,但對於初學者。大部分應該是/etc/nginx/conf.d/default.conf里面的PHP解析部分配置不對。
解決的話就是把root定義,在server下加上,這樣root的作用域就擴大了。把location ~ \.php${里面的root刪除。fastcgi_param部分改為$document_root$fastcgi_script_name;
好了,來總結一下這類錯誤的原因吧:
1.可能原因之一:/etc/nginx/conf.d/default.conf的root路徑和php解析部分配置不對。
解決:將root定義放到server下,或者在php解析部分的root定義為全路徑。同時將fastcgi_param部分改為$document_root$fastcgi_script_name;
2.可能原因之二:請求的文件(例如:xxx.php)文件真的不存在url對應的路徑。
解決:找到相關文件,確認路徑。
3.可能原因之三:路徑沒有讀權限。
解決:添加用戶和權限。
4.題外話,如果沒有打開php解析。那么php文件會被當成文件下載且不被解析。
參考鏈接和文章如下:
http://www.2cto.com/os/201212/178528.html
http://www.cnblogs.com/iosdev/p/3439834.html
http://blog.chinaunix.NET/uid-26719405-id-3586780.html
http://www.trackself.com/archives/2443.html