加速器eaccelerator不兼容高版本php

话说PHP官方发布PHP5.4已经有一阵了,根据使用的情况来看,似乎还是很不错的。从初始发布到现在升级到的PHP5.4.4,修正不少的Bug。PHP5.4新的版本,除了提供了更多新的特性,还有大幅的效率提升。这个版本趋于稳定之后,我决定把我的服务器升级到PHP5.4.4。

服务器上的软件包,一直以来都是编译安装,因此对于这些东西自己也是比较可控的。从PHP官方网站下载最新的源代码包,解压缩并且安装,这没有什么特别的。以下是我使用的安装编译参数:

./configure --prefix=/usr/local/php-5.4.4/ --with-config-file-path=/usr/local/php-5.4.4/etc --with-mysql --with-mysqli --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-pdo-mysql
make ZEND_EXTRA_LIBS=‘-liconv‘
make install

在安装eaccelerator的时候,出现了奇葩的错误:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c: In function ‘eaccelerator_restore’:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:878: warning: assignment discards qualifiers from pointer target type
/home/package/eaccelerator-0.9.6.1/eaccelerator.c: In function ‘eaccelerator_compile_file’:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1317: error: ‘zend_class_entry’ has no member named ‘line_start’
/home/package/eaccelerator-0.9.6.1/eaccelerator.c: At top level:
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1913: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘eaccelerator_functions’
/home/package/eaccelerator-0.9.6.1/eaccelerator.c:1938: error: ‘eaccelerator_functions’ undeclared here (not in a function)
make: *** [eaccelerator.lo] Error 1

看报错情况来看,eaccelerator似乎与新版本的PHP不兼容。于是分别尝试了另外两个加速器,APC和xcache。

安装APC时出现了一个比较纠结的问题,启动php-fpm时会报出php-fpm Segmentation fault错误,后来在网上搜索了之后没有发现解决方案,之后便选定了xcache。看到官方网站上最近发布的2.0版本,已经完全支持了PHP5.4,于是下载回来编译安装,一切正常!

之前看过一个关于三种加速器性能比较的文章(传送门:《关于PHP加速eAccelerator、APC和Zend Optimizer》),发现三者的悬殊较小,eaccelerator以微弱优势胜出。看来,选择xcache也是个不错的选择。

时间: 2024-07-28 19:47:09

加速器eaccelerator不兼容高版本php的相关文章

html5调用本机摄像头兼容谷歌浏览器高版本,谷歌浏览器低版本,火狐浏览器

做这个功能的时候在网上查了一些资料,代码如下,在这个代码在谷歌浏览器46版本是没问题的,在火狐浏览器也行,但是在谷歌浏览器高版本下是不兼容的 <div id="body"> <section class="featured"> <div class="content-wrapper"> <hgroup class="title"> <h1>Welcome to web

Android 开源项目android-open-project工具库解析之(二) 高版本向低版本兼容,多媒体相关,事件总线(订阅者模式),传感器,安全,插件化,文件

六.Android 高版本向低版本兼容 ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题 项目地址:https://github.com/JakeWharton/ActionBarSherlock Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos APP示例:太多了..现在连google都

我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。

早上使用.Net WebClient类采集亚马逊数据,返回http 400 Bad Request错误,内容里面有“我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性.” 所以就想着可能是WebClient使用TLS版本过低,查了下资料,全局加上这段代码. ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificat

MSSQL数据库高版本迁移到低版本

起因是因为客户要把系统从阿里云迁移到本地服务器,阿里云上的数据库版本是MSSQL2016,客户提供的服务器是Server2008R2的,问题就来了,Server2008不支持2016版本,最后只能装的2012版本,那就需要从2016迁移到2012. 过程是一波三折,网上流传选择一下兼容模式,如下图 然后再去备份,不知道别人是怎么成功的或者是他们自己也没有成功,我反正最后还是报错,低版本不支持高版本. 最后没本法只能采用生成架构跟数据的脚本来进行导入了 好吧,好在我们数据量还不是很大,sql文件导

iOS开发中的高版本宏检测

在框架开发中,为了适配最低的系统版本,我们需要注意不使用高版本API.但除了个人注意之外,是否可以在编译时由系统提示超出兼容版本的API使用情况呢, 观察了CF_AVAILABLE_IOS宏之后,我们给出了如下解决方案,即更改iOS SDK.具体方案如下: 添加位置: Frameworks-> CoreFoundation -> CFAvalailability.h line 115  添加代码: /* added by Mitty */ #define __NEP_2_0 availabil

高版本jquery尤其是1.10.2的版本设置input radio设置值的最正确的姿势。

$("input:radio[name="analyshowtype"]").attr("checked",false); $("input[name=jizai]:eq(0)").attr("checked",'checked'); $("input[@type=radio][name=sex][@value=1]").attr("checked",true); 以

如何让VMware低版本运行VMware高版本创建的虚拟机

如何让VMware低版本运行VMware高版本创建的虚拟机 问题描述: 本机安装的VMware Workstation是10版本,之前VMware Workstation 11版本创建的虚拟机,在运行虚拟机时报错: The configuration file "vmname.vmx" was created by a VMware product that is incompatible with this version of VMware Workstation and cann

php高版本不再使用mysql_connect()来连接数据库

想用php生成一个mysql数据字典导出来,用到下面代码会 $mysql_conn = mysql_connect ( "$dbserver", "$dbusername", "$dbpassword" ) or die ( "Mysql connect is error." ); 在php5.5.12版本运行会提示 Deprecated: mysql_connect(): The mysql extension is dep

MVC 基架不支持 Entity Framework 6 或更高版本

MVC 基架不支持 Entity Framework 6 或更高版本.有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=276833. PS:新做一个小型系统时,在开始打框架的时候的碰到的. 查阅了下,在我们辛勤工作的时候,EF已经升级了从EF5已经更新到了EF6了.NuGet程序包更新的时候直接更新到最新版了. 我的VS2012 最高也才MVC4 所以悲剧的不兼容了. 结论就是 MVC4+EF5  或者 MVC5+EF6 调低版本吧. 步骤如下