我正在尝试在我的 Ubuntu 10.04 服务器上创建从 nginx 到 apache 的反向代理。它现在处理 HTML 文件时运行良好……请求直接发送到 apache。但每当我访问 PHP 文件时,都会看到 nginx 错误502 bad gateway
。我猜这意味着 apache 的 PHP 配置有问题。
这是我从 nginx 错误日志中得到的消息:
2012/01/02 09:48:06 [error] 27834#0: *2445 upstream prematurely closed connection
while reading response header from upstream, client: myIP,
server: mydomainname, request: "GET /phpsite/ HTTP/1.1",
upstream: "http://127.0.0.1:8090/phpsite/", host: "mydomainname"
我已经尝试过使用一些 指南在 apache 上安装 PHP 几次;都无法解决错误。
我的 nginx/apache 配置不正确吗?如果是这样,我应该如何添加 PHP?
编辑:我修复了它!显然,PHP 安装了两个缓存插件(apc 和 XCache),它们互相干扰。在 php 日志文件中,我发现了这一点:
PHP Warning: Cannot load module 'XCache' because conflicting module 'apc' is already loaded in Unknown on line 0
我删除了 apc 并重新启动了 apache。现在它运行正常。
答案1
您可以尝试直接在apache上访问PHP站点,而不经过nginx。
要在 Apache 上启用 PHP,您需要安装 PHP 模块libapach2-mod-php5
。如果系统提示您保存 PHP 文件,则需要确保您的 Apache 配置中有类似以下的一行:
AddType application/x-httpd-php .php
修改配置后,不要忘记重新加载/重新启动 apache 服务器。