首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 源碼編譯常見錯誤與解決方案大全

     編輯:PHP 相關知識

前言

在 Linux 環境下從源碼編譯 PHP 時,configure 階段常因缺少依賴庫而報錯。本文彙總高頻錯誤及對應的 yum/apt 安裝命令,助你快速通過編譯配置。

高頻錯誤對照表

錯誤信息缺少套件CentOS/RHEL (yum)Ubuntu/Debian (apt)
libevent >= 1.4.11 could not be foundlibeventyum -y install libevent libevent-develapt-get install libevent-dev
Please reinstall the mysql distributionMySQL 開發包yum -y install mysql-develapt-get install libmysqlclient-dev
make: *** [sapi/fpm/php-fpm] error 1libiconvmake ZEND_EXTRA_LIBS='-liconv'同左
XML configuration could not be foundlibxml2yum -y install libxml2 libxml2-develapt-get install libxml2-dev
No curses/termcap library foundncursesyum -y install ncurses ncurses-develapt-get install libncurses5-dev
xml2-config not foundlibxml2yum -y install libxml2 libxml2-develapt-get install libxml2-dev
Cannot find OpenSSL's <evp.h>OpenSSLyum install openssl openssl-develapt-get install libssl-dev
Please reinstall the libcurl distributionlibcurlyum install curl curl-develapt-get install libcurl4-gnutls-dev
Cannot find ldap.hOpenLDAPyum install openldap openldap-develapt-get install libldap2-dev
libjpeg.(a|so) not foundlibjpegyum install libjpeg libjpeg-develapt-get install libjpeg-dev
libpng.(a|so) not foundlibpngyum install libpng libpng-develapt-get install libpng-dev
freetype.h not foundfreetypeyum install freetype-develapt-get install libfreetype6-dev
cannot find output from lex; giving upflexyum -y install flexapt-get install flex
mod_deflate prerequisite failureszlib, opensslyum -y install zlib-devel openssl-develapt-get install zlib1g-dev libssl-dev
Unable to locate gmp.hgmpyum install gmp-develapt-get install libgmp-dev
Cannot find MySQL header files under /usrMySQL 開發包yum install mysql-develapt-get install libmysqlclient-dev
Please reinstall the ncurses distributionncursesyum install ncurses ncurses-develapt-get install libncurses5-dev
ODBC header file 'sqlext.h' not foundunixODBCyum install unixODBC-develapt-get install unixodbc-dev
Cannot find pspellaspellyum install pspell-develapt-get install libaspell-dev
mcrypt.h not foundlibmcryptyum install libmcrypt libmcrypt-develapt-get install libmcrypt-dev
snmp.h not foundnet-snmpyum install net-snmp net-snmp-develapt-get install libsnmp-dev
/usr/bin/ld: cannot find -lltdllibtoolyum install libtool-ltdl-develapt-get install libltdl-dev

擴展模塊編譯額外問題

1. phpize 報錯:Cannot find autoconf

# CentOS
yum install autoconf
# Ubuntu
apt-get install autoconf

2. phpize 報錯:Cannot find config.m4

需在擴展源碼目錄下執行 phpize,並確保目錄包含 config.m4。若為自建擴展,可用 ./ext_skel --extname=my_module 生成骨架,再編輯 config.m4 啟用 PHP_ARG_WITH 或 PHP_ARG_ENABLE。

通用編譯建議

  • 編譯前先 yum groupinstall "Development Tools"(CentOS)或 apt-get install build-essential(Ubuntu)。
  • 使用 ./configure --help 查看所有可選參數,按需啟用擴展(如 --enable-fpm --with-mysqli --with-pdo-mysql)。
  • 編譯並安裝:make -j$(nproc) && make install。
  • 安裝後複製 php.ini-production 到 /usr/local/php/lib/php.ini 並調整配置。

結語

大多數 configure 錯誤均因缺少 -devel/-dev 包導致。按表安裝對應依賴後重新執行 ./configure 即可解決。若遇到未列出的錯誤,請檢查 config.log 獲取詳細信息。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved