kn007的个人博客
♥ You are here: Home > 软件与网络 > php > 升级为PHP7

升级为PHP7

by | 10 Comments

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

upgrade-to-php7

目前使用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

donate
有所帮助?
Tags: , , ,

Comments

10 Comments立即评论
  1. 沙发, :cool: :cool:
    最近入手了一台阿里云,闲着没事折腾中,先看php7的体验如何 :razz:

    1. MOD回复

      @World: 我现在调试就买DO,$20/mo的配置,每小时只要$0.03,不过我上次用了不到2小时,他收了我$0.08 :o

  2. LV5回复

    我擦,楼上的速度这么快,板凳。

    1. MOD回复

      @小可: ...我这篇是定时在早上发的。。。

  3. :shock: :shock: :shock: 有问题我也不解决

    1. MOD回复

      @hannah: 额,好吧

  4. 追的挺快啊

    1. MOD回复

      @傅小黑: :mrgreen: 那倒也没有,我算慢的了,比较能忍,等到7.0.1才来试,7.0 Released怕太多问题,没试,即便这样,还是发现了一些signal 7 (SIGBUS),看来得用debug了。

  5. 回复

    速度方面能否赶超 Node.js V4?

    1. MOD回复

      @mRNA: 看怎么测了。
      我觉得一般还是nodejs快,我用的是nodejs 5

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif