【问题标题】:Getting error 502 instead of displaying errors on nginx + php-fpm得到错误 502 而不是在 nginx + php-fpm 上显示错误
【发布时间】:2014-01-17 20:54:06
【问题描述】:

我已经尝试了所有方法,但仍然无法在浏览器上显示错误,我使用的是 nginx、php-fpm 和 centOS 6.4

nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

这是我在 conf.d 中的 nginx 配置

server {
listen       80;
server_name  localhost;
root /server/public;
index run.php;


location / {
    try_files $uri $uri/ /run.php;
}

location ~ \.php$ {
    fastcgi_index   run.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

php-fpm 配置

catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = on

php.ini

display_errors = on
log_errors = on

我在启用了 NAT 的 virtualbox 上运行 CentOS 6.4,如果我从服务器内部 curl localhost 我得到正确的错误但如果我从服务器外部的浏览器访问该站点我得到一个 502 bad gateway 错误,如果我正在加载的页面没有错误一切正常,我错过了什么吗?

【问题讨论】:

  • cat 您的/var/log/nginx/error.log 文件并找出网络服务器在您访问系统时看到的确切错误,因为 502 通常表示网关配置不正确,而php5-fpm这通常意味着你没有fastcgi_pass-ing 到正确的路径

标签: nginx php


【解决方案1】:

如果您想知道为什么会收到该错误,我可以给您一些提示。

error 502 表示网关错误,表示 nginx 尝试代理的 php 服务器没有响应,可能是因为 php5-fpm 没有监听端口 9000,而是使用了 sock 文件,或者可能是php 根本没有运行(如果所有 php 文件都不起作用)

为什么你从 curl 和浏览器得到不同的响应?因为你的服务器被定义为 localhost 我假设这两种方法都没有被不同的服务器块捕获。

解决此问题的正确方法是检查活动虚拟主机和 php5-fpm 监听配置,

我认为安装新的 php 解决了这个问题只是巧合,可能是因为它会将旧的配置文件覆盖为与 nginx 配置一起使用的新配置文件。

但无论如何,我只是想给你一些提示,告诉你如果你以后发现类似的问题要检查什么。

【讨论】:

    【解决方案2】:

    看起来是我的 php (5.3) 版本失败了,更新到 php 5.5 后它开始工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2013-08-24
      • 2012-04-17
      • 2011-03-12
      • 2023-03-29
      • 2012-05-15
      相关资源
      最近更新 更多