今天安編繹安裝php5328在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”參數的作用是啓用線程安全。