如何让 PHP 5.3.3 与 CentOS 5.5 上的 Nginx 协同工作?

如何让 PHP 5.3.3 与 CentOS 5.5 上的 Nginx 协同工作?

我已经将 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

  1. 确保 php-fpm 正在运行(ps auxw | grep php或任何其他方式)
  2. 确保 php-fpm 确实在监听 9000。(检查配置)
  3. 确保您的软件防火墙没有阻止 9000 上的环回连接。

我不是 nginx 专家,但错误消息非常清楚:127.0.0.1:9000 无人接听电话

答案2

明白了!显然,此版本默认关闭了对短标签的支持。因此,NginX 可以正确传递它,但 PHP 会忽略短 PHP 标签并将其不加处理地发回。

相关内容