1. 程式人生 > >linux CentOS x64 裡php原始碼編譯出錯參見情況及解決辦法

linux CentOS x64 裡php原始碼編譯出錯參見情況及解決辦法

configure: error: xml2-config not found. Please check your libxml2 installation.

yum install libxml2-devel.x86_64

configure: error: Cannot find OpenSSL’s

yum install openssl-devel.x86_64

configure: error: Could not find pcre.h in /usr/local

yum install pcre-devel.x86_64

configure: error: Could not find pcre.h in /usr/local

"--with-pcre-regex=/usr/include" \

configure: error: Could not find libpcre.(a|so) in /usr/include

"--with-pcre-regex=/usr" \

configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/

yum install curl-devel.x86_64

configure: error: libjpeg.(a|so) not found.

yum install libjpeg-devel.x86_64

configure: error: libpng.(a|so) not found.

yum install libpng-devel.x86_64

configure: error: freetype.h not found.

yum install freetype-devel.x86_64

configure: error: Please reinstall the iconv library.

"--with-iconv" \

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

yum install libmcrypt.x86_64 libmcrypt-devel.x86_64

configure: error: Please reinstall libmhash – I cannot find mhash.h 一般經常出現這個錯誤

yum install mhash.x86_64 mhash-devel.x86_64

Note that the MySQL client library is not bundled anymore!

yum install php-mysql.x86_64 mysql-devel.x86_64

configure: error: Please reinstall the BZip2 distribution

yum install bzip2-devel.x86_64

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
DISABLE IMAP
configure: error: Cannot find pspell

yum install aspell-devel.x86_64

configure: error: Cannot find libtidy

yum install libtidy.x86_64 libtidy-devel.x86_64

error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

yum install libxslt.x86_64 libxslt-devel.x86_64

collect2: ld returned 1 exit status

yum install glibc-utils.x86_64 libtool-ltdl-devel.x86_64

Step by step to guide PHP Compile

Step 1: Update & Install Development Tools & Libraries

yum update
yum group install "Development Tools"
yum group install "Development Libraries"

Step 2: Run the bellow bash script

#!/bin/sh
"./configure" \
"--prefix=/usr/local/php5" \
"--enable-force-cgi-redirect" \
"--enable-fastcgi" \
"--with-bz2" \
"--with-config-file-path=/usr/local/etc" \
"--with-config-file-scan-dir=/usr/local/etc/php.d" \
"--with-curl=/usr/local/lib" \
"--with-gd" \
"--with-gettext" \
"--with-jpeg-dir=/usr/local/lib" \
"--with-freetype-dir=/usr/local/lib" \
"--with-kerberos" \
"--with-mcrypt" \
"--with-mhash" \
"--with-mime-magic" \
"--with-mysql" \
"--with-mysqli" \
"--with-pcre-regex=/usr" \
"--with-pdo-mysql=shared" \
"--with-pdo-sqlite=shared" \
"--with-pear=/usr/local/lib/php" \
"--with-png-dir=/usr/local/lib" \
"--with-pspell" \
"--with-sqlite=shared" \
"--with-tidy" \
"--with-ttf" \
"--with-xmlrpc" \
"--with-xsl" \
"--with-zlib" \
"--with-zlib-dir=/usr/local/lib" \
"--with-openssl" \
"--with-iconv" \
"--with-libdir=lib64" \
"--enable-bcmath" \
"--enable-calendar" \
"--enable-exif" \
"--enable-ftp" \
"--enable-gd-native-ttf" \
"--enable-libxml" \
"--enable-magic-quotes" \
"--enable-soap" \
"--enable-sockets" \
"--enable-mbstring" \
"--enable-zip" \
"--enable-wddx"

php編譯./configure 引數

–prefix=/usr/local/php php 安裝目錄
–with-apxs2=/usr/local/apache/bin/apxs
–with-config-file-path=/usr/local/php/etc 指定php.ini位置
–with-mysql=/usr/local/mysql mysql安裝目錄,對mysql的支援
–with-mysqli=/usr/local/mysql/bin/mysql_config mysqli檔案目錄,優化支援
–enable-safe-mode 開啟安全模式
–enable-ftp 開啟ftp的支援
–enable-zip 開啟對zip的支援
–with-bz2 開啟對bz2檔案的支援 
–with-jpeg-dir 開啟對jpeg圖片的支援
–with-png-dir 開啟對png圖片的支援
–with-freetype-dir 開啟對freetype字型庫的支援
–without-iconv 關閉iconv函式,種字符集間的轉換
–with-libxml-dir 開啟libxml2庫的支援
–with-xmlrpc 開啟xml-rpc的c語言
–with-zlib-dir 開啟zlib庫的支援
–with-gd 開啟gd庫的支援
–enable-gd-native-ttf 支援TrueType字串函式庫
–with-curl 開啟curl瀏覽工具的支援
–with-curlwrappers 運用curl工具開啟url流
–with-ttf 開啟freetype1.*的支援,可以不加了
–with-xsl 開啟XSLT 檔案支援,擴充套件了libxml2庫 ,需要libxslt軟體
–with-gettext 開啟gnu 的gettext 支援,編碼庫用到
–with-pear 開啟pear命令的支援,php擴充套件用的
–enable-calendar 開啟日曆擴充套件功能
–enable-mbstring 多位元組,字串的支援
–enable-bcmath 開啟圖片大小調整,用到zabbix監控的時候用到了這個模組
–enable-sockets 開啟 sockets 支援
–enable-exif 圖片的元資料支援
–enable-magic-quotes 魔術引用的支援
–disable-rpath 關閉額外的執行庫檔案
–disable-debug 關閉除錯模式
–with-mime-magic=/usr/share/file/magic.mime 魔術標頭檔案位置

cgi方式安裝才用的引數
–enable-fpm 打上php-fpm 補丁後才有這個引數,cgi方式安裝的啟動程式
–enable-fastcgi 支援fastcgi方式啟動php
–enable-force-cgi-redirect 同上 ,幫助裡沒有解釋
–with-ncurses 支援ncurses 螢幕繪製以及基於文字終端的圖形互動功能的動態庫
–enable-pcntl freeTDS需要用到的,可能是連結mssql 才用到

mhash和mcrypt演算法的擴充套件
–with-mcrypt 演算法
–with-mhash 演算法

–with-gmp
–enable-inline-optimization
–with-openssl openssl的支援,加密傳輸時用到的
–enable-dbase
–with-pcre-dir=/usr/local/bin/pcre-config perl的正則庫案安裝位置
–disable-dmalloc
–with-gdbm dba的gdbm支援
–enable-sigchild
–enable-sysvsem
–enable-sysvshm
–enable-zend-multibyte 支援zend的多位元組
–enable-mbregex
–enable-wddx
–enable-shmop
–enable-soap

PHP配置選項完整列表
資料庫選項
--with-dbplus
包括 dbplus 的支援。
--with-adabas[=DIR]
包括 Adabas D 的支援。DIR 是 Adabas 的基本安裝目錄,預設為 /usr/local。
--with-sapdb[=DIR]
包括 SAP DB 的支援。DIR 是 SAP DB 的基本安裝目錄,預設為 /usr/local。
--with-solid[=DIR]
包括 Solid 的支援。DIR 是 Solid 的基本安裝目錄,預設為 /usr/local/solid。
--with-ibm-db2[=DIR]
包括 IBM DB2 的支援。DIR 是 DB2 的基本安裝目錄,預設為 /home/db2inst1/sqllib。
--with-empress[=DIR]
包括 Empress 的支援。DIR 是 Empress 的基本安裝目錄,預設為 $EMPRESSPATH。自 PHP4 起,本選項僅支援 Empress 8.60 及以上版本。
--with-empress-bcs[=DIR]
包括 Empress Local Access 的支援。DIR 是 Empress 的基本安裝目錄,預設為 $EMPRESSPATH。自 PHP4 起,本選項僅支援 Empress 8.60 及以上版本。
--with-birdstep[=DIR]
包括 Birdstep 的支援。DIR 是 Birdstep 的基本安裝目錄,預設為 /usr/local/birdstep。
--with-custom-odbc[=DIR]
包括使用者自定義 ODBC 的支援。DIR 是 ODBC 的基本安裝目錄,預設為 /usr/local。要確認定義了 CUSTOM_ODBC_LIBS 並且在 include 目錄中有某個 odbc.h。例如,對於 QNX 下的 Sybase SQL Anywhere 5.5.00,在執行 configure 指令碼之前應該先定義以下環境變數: CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".
--with-iodbc[=DIR]
包括 iODBC 的支援。DIR 是 iODBC 的基本安裝目錄,預設為 /usr/local。
--with-esoob[=DIR]
包括 Easysoft OOB 的支援。DIR 是 OOB 的基本安裝目錄,預設為 /usr/local/easysoft/oob/client。
--with-unixODBC[=DIR]
包括 unixODBC 的支援。DIR 是 unixODBC 的基本安裝目錄,預設為 /usr/local。
--with-openlink[=DIR]
包括 OpenLink ODBC 的支援。DIR 是 OpenLink 的基本安裝目錄,預設為 /usr/local。這和 iODBC 一樣。
--with-dbmaker[=DIR]
包括 DBMaker 的支援。DIR 是 DBMaker 的基本安裝目錄,預設為最新版 DBMaker 安裝的目錄(例如 /home/dbmaker/3.6)。
--disable-unified-odbc
取消對 unified ODBC 的支援。僅適用於激活了 iODBC,Adabas,Solid,Velocis 或使用者自定義 ODBC 介面。僅能用於 PHP 3!
影象選項
--without-gd
禁用 GD 支援。僅用於 PHP 3!
--with-imagick
Imagick 擴充套件被移到 PEAR 中的 PECL 中去了,可以在這裡找到。PHP 4 中的安裝指示可以在 PEAR 站點中找到。
只用 --with-imagick 僅在 PHP 3 中支援,除非依照 PEAR 站點的指示去做。
--with-ming[=DIR]
包括 ming 支援。
雜類選項
--enable-force-cgi-redirect
啟用伺服器內部重定向的安全檢查。如果是在 Apache 中以 CGI 方式使用 PHP 則應該使用此選項。
--enable-discard-path
使用此選項可以使 PHP 的 CGI 可執行程式安全地放置在 web 目錄樹以外的地方,並且別人也不能繞過 .htaccess 的安全設定。
--with-fastcgi
將 PHP 編譯成 FastCGI 應用程式。
--enable-debug
編譯時加入除錯符號。
--with-layout=TYPE
設定安裝後的檔案佈局。TYPE 可以是 PHP(預設值)或者 GNU。
--with-pear=DIR
將 PEAR 安裝在 DIR 目錄中(預設為 PREFIX/lib/php)。
--without-pear
不安裝 PEAR。
--enable-sigchild
啟用 PHP 自己的 SIGCHLD 控制代碼。
--disable-rpath
禁止傳遞附加的執行時庫搜尋路徑。
--enable-libgcc
啟用顯式 libgcc 連線。
--enable-php-streams
包含試驗的 PHP 流。除非是測試原始碼,否則不要使用!
--with-zlib-dir=<DIR>;
定義 zlib 的安裝路徑。
--with-aspell[=DIR]
包含 ASPELL 支援。
--with-ccvs[=DIR]
包含 CCVS 支援。
--with-cybercash[=DIR]
包含 CyberCash 支援。DIR 是 CyberCash MCK 的安裝目錄。
--with-icap[=DIR]
包含 ICAP 支援。
--with-ircg-config
ircg-config 指令碼的路徑。
--with-ircg
包含 ircg 支援。
--enable-mailparse
包含 mailparse 支援。
--with-muscat[=DIR]
包含 muscat 支援。
--with-satellite[=DIR]
啟用通過 Satellite(試驗性質)的 CORBA 支援。DIR 是 ORBit 的主目錄。
--enable-trans-sid
啟用透明的 session id 傳播。
--with-regex[=TYPE]
使用系統 regex 庫(不贊成)。
--with-vpopmail[=DIR]
包含 vpopmail 支援。
--with-tsrm-pthreads
使用 POSIX 執行緒(預設值)。
--enable-shared[=PKGS]
編譯共享庫 [default=yes]。
--enable-static[=PKGS]
編譯靜態庫 [default=yes]。
--enable-fast-install[=PKGS]
為快速安裝而優化 [default=yes]。
--with-gnu-ld
假定 C 編譯器使用 GNU ld [default=no]。
--disable-libtool-lock
避免鎖死(可能會破壞並行編譯)。
--with-pic
嘗試只使用 PIC/non-PIC 物件 [default=use both]。
--enable-memory-limit
編譯時加入記憶體限制支援。
--disable-url-fopen-wrapper
禁止通過 URL 的 fopen wrapper,不能通過 HTTP 或 FTP 訪問檔案。
--enable-versioning
僅輸出所需要的符號。更多資訊見 INSTALL 檔案。
--with-imsp[=DIR]
包含 IMSp 支援(DIR 是 IMSP 的 include 目錄和 libimsp.a 目錄)。僅用於 PHP 3!
--with-mck[=DIR]
包含 Cybercash MCK 支援。DIR 是 cybercash mck 編譯目錄,預設為 /usr/src/mck-3.2.0.3-linux。幫助見 extra/cyberlib。僅用於 PHP 3!
--with-mod-dav=DIR
包含通過 Apache 的 mod_dav 的 DAV 支援。DIR 是 mod_dav 的安裝目錄(僅用於 Apache 模組版本!)僅用於 PHP 3!
--enable-debugger
編譯入遠端除錯函式。僅用於 PHP 3!
--enable-versioning
利用 Solaris 2.x 和 Linux 提供的版本控制與作用範圍的優勢。僅用於 PHP 3!
PHP 選項
--enable-maintainer-mode
啟用將編譯規則和未使用的(以及一些混淆的)依賴檔案放入臨時安裝中。
--with-config-file-path=PATH
設定 php.ini 所在的路徑,預設為 PREFIX/lib。
--enable-safe-mode
預設啟用安全模式。
--with-exec-dir[=DIR]
安全模式下只允許此目錄下執行程式。預設為 /usr/local/php/bin。
--enable-magic-quotes
預設啟用 magic quotes。
--disable-short-tags
預設禁止簡寫的 PHP 開始標記 <?。
伺服器選項
--with-aolserver=DIR
指定已安裝的 AOLserver 的路徑。
--with-apxs[=FILE]
編譯共享 Apache 模組。FILE 是可選的 Apache 的 apxs 工具的路徑,預設為 apxs。確保指定的 apxs 版本是安裝後的檔案而不是 Apache 源程式中包中的。
--with-apache[=DIR]
編譯 Apache 模組。DIR 是 Apache 源程式的最高一級目錄。預設為 /usr/local/apache。
--with-mod_charset
啟用 mod_charset 中的傳遞表(Apache 中)。
--with-apxs2[=FILE]
編譯共享的 Apache 2.0 模組。FILE 是可選的 Apache 的 apxs 工具的路徑,預設為 apxs。
--with-fhttpd[=DIR]
編譯 fhttpd 模組。DIR 是 fhttpd 的原始碼路徑,預設為 /usr/local/src/fhttpd。
--with-isapi=DIR
將 PHP 編譯為 ISAPI 模組用於 Zeus。
--with-nsapi=DIR
指定已安裝的 Netscape 伺服器路徑。
--with-phttpd=DIR
暫無資訊。
--with-pi3web=DIR
將 PHP 編譯為用於 Pi3Web 的模組。
--with-roxen=DIR
將 PHP 編譯為一個 Pike 模組。DIR 是 Roxen 的根目錄,通常為 /usr/local/roxen/server。
--enable-roxen-zts
編譯 Roxen 模組,使用 Zend Thread Safety。
--with-servlet[=DIR]
包含 servlet 支援。DIR 是 JSDK 的基本安裝目錄。本 SAPI 需要 java 擴充套件必須被編譯為共享的 dl。
--with-thttpd=SRCDIR
將 PHP 編譯為 thttpd 模組。
--with-tux=MODULEDIR
將 PHP 編譯為 TUX 模組(僅用於 Linux)。