转自http://www.tuicool.com/articles/iInMJrm
登陆WORDPRESS后台的时候,部分页面出现502 Bad Gateway错误
我的PHP版本是5.2.17
mysql版本是5.1.60
WordPress版本3.8.3
看了php-fpm的日志,基本上都是类似下面的错误
May 13 19:35:21.668482 [WARNING] fpm_stdio_child_said(), line 167: child 12854 (pool default) said into stderr: "[Tue May 13 19:35:16 2014" May 13 19:35:21.680238 [WARNING] fpm_stdio_child_said(), line 167: child 12854 (pool default) said into stderr: "] [notice] EACCELERATOR(12854): PHP crashed on opline 469 of curl_exec() at /*/wp-includes/class-http.php:1249", pipe is closed May 13 19:35:21.680267 [WARNING] fpm_stdio_child_said(), line 167: child 12854 (pool default) said into stderr: "", pipe is closed May 13 19:35:21.680285 [NOTICE] fpm_got_signal(), line 48: received SIGCHLD May 13 19:35:21.680317 [WARNING] fpm_children_bury(), line 215: child 12854 (pool default) exited on signal 11 SIGSEGV after 2056.281254 seconds from start May 13 19:35:21.680742 [NOTICE] fpm_children_make(), line 352: child 20797 (pool default) started
查询了网上的解决办法,修改后基本上都没有什么作用,错误依旧。
1.尝试了第一种方法:将unix套接字改成tcp/ip的
修改
/usr/local/php/etc/php-fpm.cnf
将
< value name="“listen_address”">/tmp/nginx.socket< /value>
里面的
/tmp/nginx.socket
修改成
127.0.0.1:9000
同时将/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的
fastcgi_pass unix:/tmp/php-cgi.sock;
修改成
fastcgi_pass 127.0.0.1:9000;
之后,重新启动LNMP。
这种方法,解决了wodpress部分后台的502错误问题,但更新页面和插件页面还是一样出现502 Bad Gateway错误。
2.于是又尝试了第二种方法,将libsqlite3.so.0.8.6修改
32位的修改如下
mv /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0.8.6.bak
64位的修改如下
mv /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6.bak
修改完登陆wordpress,打开更新页面和插件页面,还真不出现502 Bad Gateway错误了。
至此问题解决。
但现在我就奇怪了,想到第二种方法的人,真是神人啊?怎么能想出这个问题的解决方案的?是如何查到的呢?
希望高人指点。
LNMP的制作者军哥说,
只有在centos 6 下 php 5.2.17 + wordpress 3.8.1下会502
php 5.3下没问题
但实际上,我现在的wordpress版本也出现了同样的问题,所以应该是PHP5.2的原因!
提醒使用LNMP一键安装的朋友们,如果你想不出现502 Bad Gateway错误,建议安装PHP 5.3版本吧!!
有人说是PHP内存溢出问题,具体原因有待考证