升级为PHP7

提醒:本文最后更新于 2625 天前,文中所描述的信息可能已发生改变,请仔细核实。

目前使用PHP7正常,处理速度及效率明显提升(提升>120%,大并发提升超过200%),暂未发现问题。

重新简述下环境:
系统:CentOS 6.7 x64
反向代理:Varnish(80)、Nginx(443)
中层代理:Nginx
后端:PHP
数据库:MySQL、Redis、Memcache

目前PHP7对下列扩展支持(实测):
[√]igbinary(兼容)
[√]msgpack(完全兼容)
[-]memcache(兼容)
[√]memcached(兼容)
[√]redis(完全兼容)

然而Wordpress使用Memcached Object Cache会直接segmentation fault(signal 11),另外igbinary编译可以通过,但内核会报错(signal 6)。

仔细查看后,发现igbinary其实是可以正常使用的,在被memcached调用后出错。

用redis扩展完全没问题(带不带igbinary都没问题),memcache扩展已被我弃用了,所以没试。msgpack现在用的少,如果igbinary确定不行,就只能用回msgpack了。

禁用igbinary扩展,重新编译memcached扩展(不启用igbinary支持),提示无igbinary支持:

Memcached::get(): could not unserialize value, no igbinary support in /var/www/kn007.net/wp-content/object-cache.php on line 1300

看来即便我没加enable-memcached-igbinary也被加上了???但能正常使用了。

但如果WP不使用Memcached类,在仍然编译了igbinary、memcached、redis扩展的情况下,别的php业务使用Memcached类并没报错。也就是说可能还是哪里写的不够规范,或者调用的Memcached类函数不被支持(比较可能)。

回头有时间看是Memcached类哪个函数导致segmentation fault了。当然还有个可能。。。igbinary扩展有问题(这可能性也不小)。。。

phpmyadmin无法使用,提示:

phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

将session.serialize_handler的值igbinary改为php解决,坑爹,有违初衷。

改成msgpack也没问题,但感觉msgpack的性能还是不如igbinary。

诶,这SB内核居然没有core dump。。。郁闷。

暂未发现其他问题。现有问题留待以后有时间解决。

转载请注明转自:kn007的个人博客的《升级为PHP7