必威官网登录:RHEL 5 编译 eAccelerator 0.9.6.1 遇到的

很早就知道这个模块可以加速 PHP 运算,但是看到其版本号不禁让人菊花一紧,不到 1.0 的可用程度……不过后来在其他服务器上跑跑看感觉还不错,如是乎上线吧。但是在 RHEL 5 机器上编译 eaccelerator 0.9.6.1 发现出错鸟,提示信息如下

php-screw版本问题,报错

gcc -I. -I/root/eaccelerator-0.9.6.1 -DPHP_ATOM_INC -I/root/eaccelerator-0.9.6.1/include -I/root/eaccelerator-0.9.6.1/main -I/root/eaccelerator-0.9.6.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -c /root/eaccelerator-0.9.6.1/ea_store.c -fPIC -DPIC -o .libs/ea_store.o
/root/eaccelerator-0.9.6.1/ea_store.c: In function ‘store_property_access_check’:
/root/eaccelerator-0.9.6.1/ea_store.c:683: error: ‘zend_property_info’ has no member named ‘ce’
make: *** [ea_store.lo] Error 1

make

  由于 RHEL 5 发布的比较早,所以还是 PHP 5.1 的版本,而不是目前较为流行的 5.2,且 eaccelerator 是最新的 0.9.6.1,因此初步认为是版本 mismatch 导致。

/bin/sh /root/php_screw-1.5/libtool --mode=compile cc -I. -I/root/php_screw-1.5 -DPHP_ATOM_INC -I/root/php_screw-1.5/include -I/root/php_screw-1.5/main -I/root/php_screw-1.5 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php_screw-1.5/php_screw.c -o php_screw.lo
libtool: compile: cc -I. -I/root/php_screw-1.5 -DPHP_ATOM_INC -I/root/php_screw-1.5/include -I/root/php_screw-1.5/main -I/root/php_screw-1.5 -I/usr/include/php -I/usr/include/php/main www.111cn.net -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php_screw-1.5/php_screw.c -fPIC -DPIC -o .libs/php_screw.o
/root/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:
/root/php_screw-1.5/php_screw.c:124: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
/root/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:
/root/php_screw-1.5/php_screw.c:133: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
make: *** [php_screw.lo] Error 1

  后来到 eaccelerator 官网上转了一圈发现确实是 eaccelerator 对 Zend 版本判断的问题,www.linuxidc.com找到了原因就好办了,写个ea_store.RHEL5.patch(点击这里下载),下载后解压得到ea_store.RHEL5.patch

修改php-screw.c

本文由必威官网登录发布于游戏系统,转载请注明出处:必威官网登录:RHEL 5 编译 eAccelerator 0.9.6.1 遇到的