昨天接到一个网友的问题,说yum安装nginx+php-fpm+mysql+phpMyAdmin后,发明phpMyAdmin无法打开,一直报502错误已经抓狂半天了,本着辅佐别人快乐本身的原则,长途帮他看了一下, 现记录和总结如下,问题办理思路的总结放在文章最后,问题办理思路总结也是本文的重点。
问题情况:CentOS6通过yum安装的nginx+php-fpm+mysql+phpMyAdmin
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
问题描写:安装完成后发明nginx没有问题,而phpMyAdmin无法打开,提示502错误
问题办理进程
查察问题情况的安装包:
nginx-filesystem-1.0.15-12.el6.noarch nginx-1.0.15-12.el6.x86_64 rrdtool-php-1.3.8-7.el6.x86_64 php-pear-1.9.4-4.el6.noarch php-devel-5.3.3-46.el6_6.x86_64 php-mbstring-5.3.3-46.el6_6.x86_64 php-mcrypt-5.3.3-3.el6.x86_64 php-5.3.3-46.el6_6.x86_64 php-tidy-5.3.3-46.el6_6.x86_64 php-pecl-memcache-3.0.5-4.el6.x86_64 php-xmlrpc-5.3.3-46.el6_6.x86_64 php-xmlseclibs-1.3.1-3.el6.noarch php-common-5.3.3-46.el6_6.x86_64 php-pdo-5.3.3-46.el6_6.x86_64 php-xml-5.3.3-46.el6_6.x86_64 php-fpm-5.3.3-46.el6_6.x86_64 php-cli-5.3.3-46.el6_6.x86_64 php-mysql-5.3.3-46.el6_6.x86_64 php-eaccelerator-0.9.6.1-1.el6.x86_64 php-gd-5.3.3-46.el6_6.x86_64
按照nginx报的502错误,可以劈头判定是upstream呈现了问题,再提到upstream之前,先列一下nginx的设置文件(去掉注释,我已经将nginx记录错误日志的级别从默认级别晋升到info)。
usernginx;worker_processes1;error_log/var/log/nginx/error.loginfo;pid/var/run/nginx.pid;events{worker_connections1024;}http{include/etc/nginx/mime.types;default_typeapplication/octet-stream;client_max_body_size10M;log_formatmain'$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.logmain;sendfileon;keepalive_timeout65;include/etc/nginx/conf.d/*.conf;}
由于此设置文件中没有显式写明任何server,因此需要查察一下include /etc/nginx/conf.d/*.conf; 所包括的默认server文件,即/etc/nginx/conf.d/default.conf,去掉注释
cat/etc/nginx/conf.d/default.confserver{listen80default_server;server_name_;include/etc/nginx/default.d/*.conf;location/{root/usr/share/nginx/html;indexindex.phpindex.htmlindex.htm;}error_page404/404.html;location=/404.html{root/usr/share/nginx/html;}error_page500502503504/50x.html;location=/50x.html{root/usr/share/nginx/html;}location~[^/].php(/|$){fastcgi_split_path_info^(.+?.php)(/.*)$;if(!-f$document_root$fastcgi_script_name){return404;}fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;includefastcgi_params;}}
劈头判定,此nginx的设置确实没有问题,应该是php-fpm可能php自己的问题(缩小问题范畴)。
查阅nginx日志文件(/var/log/nginx/error.log),发明如下提示,确定是php-fpm的问题,fastcgi也算是对upstream的一种署理