公司在做高并发压测,fastcgi,apc,ocache,opcache,
几经考虑,最终考虑用opcache,因为作为 zend-opcache合并为php5.5的分支版本,xcache的前途堪虑,
在环境的安装上竟然折腾了半个下午没有搞定,这个作下问题记录。
先说安装,
http://php.net/manual/zh/opcache.installation.php
官网的说明,因为 5.2 5,3 5,4也可以用pecl来安装,试了下倒是安装成功了但启动后也没有报错,但info信息中一起没有,安装过程如下 :
sudo yum install php54w-pecl-zendopcache sudo pecl install zendopcache-7.0.3
;extension=opcache.so extension=/usr/lib64/php/modules/opcache.so ; opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1
sudo service php-fpm restart
但启动后一直报错502,fastcgi的日志也只有warning的报错
WARNING:
[pool www] child 30464 exited on signal 11 (SIGSEGV) after 22.168325 seconds
from start
有点找不到思路, 经过一番检查也没有发现什么问题,遂决定手动编译opcache模块来看看,
中间安装的过程有个安装包提示升级php-common,思绪没理好,竟然把php5.4给卸载了!!简单2到家了~~~不过也因为这个原因才发现了问题,
# 重装PHP环境这里不再鳌述,只是重装后我的环境由因为官网源升级php由原来的php5.4.34变成了5.4.36..
# sudo wget http://pecl.php.net/get/zendopcache-7.0.3.tgz # sudo tar –xv zendopcache-7.0.3.tgz # sudo cd zendopcache-7.0.3 # sudo phpize # sudo ./configure --with-php-config=/usr/bin/php-config # sudo make # sudo make install #sudo sudo service php-fpm restart
这里有变化的地方: 看README
zend_extension=/usr/lib64/php/modules/opcache.so opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 memcached.use_sasl = 1
|
这里有警告信息:
[eAccelerator] This build of |
查了下eAccelerator 和opcache实现的功能类似,只是原理有所区别,考虑到这里php.ini中将eAccelerator相关配置全部注释,再重启 php-fpm
$ sudo service php-fpm restart
久违的success,
# php –v ###也显示正常 PHP 5.4.36 (cli) (built: Dec 20 2014 14:09:43) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
phpinfo()页面也总算显示出来了
问题是解决了,但非常遗憾的是因为时间的关系没有找到问题根源…
给大家提供些php5.4.的技术上问题,同时也给大家提供些上网搜索问题的小技巧吧。
原创文章,作者:stanley,如若转载,请注明出处:http://www.178linux.com/3448