最近在给开发同事折腾开发测试环境,其中就有 php 的编译安装。由于每个人的需求不一致,所以也接触到了各种模块编译和集成,中间不乏各种编译依赖报错。
正好,搜了几次都是下面 2 篇文章内容,干脆就转到自己博客,以备后用,后续有相关内容再继续补充。
checking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution
解决办法:yum install bzip2-devel
checking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/
解决办法: yum install curl-devel
checking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).
解决办法: yum install db4-devel
checking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.
解决办法: yum install libjpeg-devel
checking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found.
解决办法: yum install libpng-devel
checking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir= configure: error: freetype.h not found.
解决办法: Reconfigure your PHP with the following option. --with-xpm-dir=/usr
checking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.
解决办法: yum install libXpm-devel
checking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.h
解决办法: yum install gmp-devel
checking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
解决办法: yum install libc-client-devel
checking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.h
解决办法: yum install openldap-devel
checking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!
解决办法: yum install unixODBC-devel
checking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
解决办法: yum install postgresql-devel
checking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distribution
解决办法: yum install sqlite-devel
checking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspell
解决办法: yum install aspell-devel
checking whether to enable UCD SNMP hack… yes checking for default_store.h… no checking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.
解决办法: yum install net-snmp-devel
checking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决办法: yum install libxslt-devel
configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法: yum install libxml2-devel
checking for PCRE headers location… configure: error: Could not find pcre.h in /usr
解决办法: yum install pcre-devel
configure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!
解决办法: yum install mysql-devel
checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!
解决办法: yum install unixODBC-devel
checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
解决办法: yum install postgresql-devel
configure: error: Cannot find pspell
解决办法: yum install pspell-devel
configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.
解决办法: yum install net-snmp-devel
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决办法: yum install libxslt-devel
1、PHP 出现 segmentation fault 错误 现象:安装完成后出现的这个问题让我一顿网上狂搜,但都无济于事。在运行任何有关 PHP 的命令时都会返回 segmentation fault 的错误,比如:php -v 或 php -m 等。经过不断试错和排查 php.ini,最终发现是在安装完 Zend Guard Loader 之后出现的。 原因: Zend Guard Loader 的配置错误。 解决办法:将 extension = ZendGuardLoader.so 改为 zend_extension = ZendGuardLoader.so 即可。 最后,我将所有可选安装的配置都单独放到 /usr/local/php/php.d 下了,而不是一股脑放到 php.ini 中,这样便于出问题时排查。
2、ICU 相关错误 现象:Unable to detect ICU prefix or /usr//bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works 解决办法:yum install -y icu libicu libicu-devel 关于 ICU 的编译参数:./configure –with-icu-dir=/usr
3、bzip2 相关错误 现象:checking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution 解决办法:yum install -y bzip2 bzip2-devel 关于 bzip2 的编译参数:./configure –with-bz2
4、gmp 相关错误 现象:checking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.h 解决办法:yum install -y gmp-devel 关于 gmp 的编译参数:./configure –with-gmp
5、readline 相关错误 现象:configure: error: Please reinstall libedit – I cannot find readline.h 解决办法:安装 Editline Library (libedit),官网:http://thrysoee.dk/editline/ 下载最新版 libedit 编译安装即可。 关于 readline 的编译参数:./configure –with-readline
6、xsl 相关错误 现象:configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution 解决办法:yum install -y libxslt libxslt-devel libxml2 libxml2-devel 关于 xsl 的编译参数:./configure –with-xsl
7、pcre 相关错误 现象:checking for PCRE headers location… configure: error: Could not find pcre.h in /usr 解决办法:yum install -y pcre-devel 关于 pcre 的编译参数:./configure –with-pcre-dir 备注:在 CentOS 5.x 中,pcre 的最新版本为 6.6,版本过低会导致在编译 Apache 2.4.x 的时候出现错误。因此,建议编译安装 pcre 的最新版 8.35,替换低版本的 pcre。
以上摘自:PHP 编译过程中常见错误信息的解决方法 | 林家铺子
后续遇到 PHP 相关问题,也会继续更新到此文当中,以备后用。