我已经尝试了一切,我仍然无法在浏览器上显示错误,我正在使用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 config
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = on
的php.ini
display_errors = on
log_errors = on
我在启用了NAT的虚拟机上运行CentOS 6.4,如果我从服务器内部卷曲localhost我得到了正确的错误但是如果我从服务器外部的浏览器访问该站点我得到502错误的网关错误,如果我正在加载的页面没有错误一切正常,我错过了什么吗?
答案 0 :(得分:1)
如果你想知道为什么会收到这个错误,我可以给你一些提示。
错误502意味着网关不好,意味着nginx尝试代理的php服务器没有响应,可能是因为php5-fpm没有收听端口9000并且它正在使用sock文件,或者可能是php根本没有运行(如果所有的php文件都不工作)
为什么你从curl和浏览器得到不同的响应?,因为你的服务器定义为localhost
我假设这两种方法都没有被不同的服务器块捕获。
修复此问题的正确方法是检查活动虚拟主机和php5-fpm listen config,
我认为安装新的PHP修复此问题可能是因为它将旧的配置文件覆盖为使用nginx配置的新配置文件。
但无论如何,我只是试图给你一些提示,看看你将来是否会发现类似的问题。
答案 1 :(得分:0)
看起来这是我的php(5.3)版本失败了,更新到PHP 5.5后它开始工作