我已经将 Engine X 和 PHP 5.3.3 从源代码安装到 CentOS 5.5 服务器上。我认为安装一切顺利,并且 Engine X 确实可以正常提供静态文件。
但是,当尝试访问基本 php 文件时,它会将 php 代码作为纯文本提供。
Engine X 错误日志显示:
2010/09/23 20:49:35 [错误] 3331#0: *6 connect() 失败 (111: 连接被拒绝) 连接到上游,客户端:my.local.ip,服务器:the_server, 请求:“GET / HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”, 主机:“the.servers.ip”
我的配置文件如下:
服务器 { 听*:80; 位置〜\ .php $ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/default$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; 包括/usr/local/nginx/conf/fastcgi_params; } }
答案1
- 确保 php-fpm 正在运行(
ps auxw | grep php
或任何其他方式) - 确保 php-fpm 确实在监听 9000。(检查配置)
- 确保您的软件防火墙没有阻止 9000 上的环回连接。
我不是 nginx 专家,但错误消息非常清楚:127.0.0.1:9000 无人接听电话
答案2
明白了!显然,此版本默认关闭了对短标签的支持。因此,NginX 可以正确传递它,但 PHP 会忽略短 PHP 标签并将其不加处理地发回。