我花了几个小时搞清楚如何安装Nginx
Ruby企业版
PHP5-fpm和MysqL,最后它全部安装完毕,似乎一切正常.
.html文件工作正常,但是当我尝试查看.PHP文件时,它看起来好像不存在,即使它确实存在.
有趣的是,当我尝试查看不存在的.html文件时,我得到了一个很好的Nginx 404消息,但是当我查看.PHP文件时,它甚至没有给我这个.
所以对我的新手来说,看起来配置有问题,或者Nginx和PHP-fpm没有互相交谈.
我一直在关注Nginx配置文件的其他许多例子,我确信事情的一面是可以的.嗯……这里是conf文件的相关位:
location ~ \.PHP${ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name; include fastcgi_params; }
和
fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on;
任何帮助是极大的赞赏.
编辑:
以下是从测试PHP文件“http://eman.id.au/test.php”返回的标头:
HTTP/1.1 404 Not Found => Server => Nginx/0.8.54 Date => Thu,16 Dec 2010 19:30:30 GMT Content-Type => text/html Connection => close X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
解决方法
我相信我今天遇到了完全相同的问题,Nginx确实将请求发送到PHP-fpm(如标题中所示)但是你得到了404,即使该文件存在并且根本没有(PHP /语法)错误,并且在任何日志(ngins或PHP-fpm)中都不会显示任何错误.
您没有包含完整的Nginx配置,但是您的“服务器”部分中是否可能没有“root”定义(正确?)?您需要确保这样做,它指向c的正确位置,并且它位于“服务器”部分内,而不是“位置”部分 – 例如:
server { root /var/www/eman; location ~ \.PHP${ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name; include fastcgi_params; } }