PHP 5.3.28编译安装报“zendparse”错误故障解决

今天安编绎安装PHP 5.3.28在make时报以下错误:

php-5.3.28/Zend/zend_language_parser.h:317: error: conflicting types for zendparse
php-5.3.28/Zend/zend_globals_macros.h:35: note: previous declaration of zendparse was here
make: *** [ext/standard/basic_functions.lo] Error 1

网友的解决方法是:把zend_language_parser.h文件中317行的内容int zendparse(void *)与zend_globals_macros.h 35行 int zendparse(void *compiler_globals);弄成一致。再进行make可以成功。

这样make成功的做法会有一个问题产生:在需要安装php扩展ZendGuardLoader后,再启动php-fpm时就会报以下错误:

Failed loading /usr/local/php/lib/php/extensions/php-5.3.x/ZendGuardLoader.so:  /usr/local/php/lib/php/extensions/php-5.3.x/ZendGuardLoader.so: undefined symbol: compiler_globals

导致ZendGuardLoader扩展包加载不成功。

最终解决方法:

在使用./confingure编绎时,不要加载“--enable-maintainer-zts”参数,“--enable-maintainer-zts”参数的作用是启用线程安全。

PHP 的详细介绍请点这里
PHP 的下载地址请点这里

推荐阅读:

生产环境实用之LNMP架构的编译安装+SSL加密实现

LNMP 全功能编译安装 for CentOS 6.3笔记

CentOS 6.3 安装LNMP (PHP 5.4,MyySQL5.6)

在部署LNMP的时候遇到Nginx启动失败的2个问题

Ubuntu安装Nginx php5-fpm MySQL(LNMP环境搭建)

《细说PHP》高清扫描PDF+光盘源码+全套教学视频

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9c0836710be6dbaae0528fd30009192e.html