編譯安裝的兩種方式為:
1.Fast-CGI方式:
(1)參數(shù)
./configure --prefix=/usr/local/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql --with-xml --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-mbstring
(2)參數(shù)說(shuō)明
--enable-fpm //打上PHP-fpm 補(bǔ)丁后才有這個(gè)參數(shù),CGI方式安裝的啟動(dòng)程序
--enable-fastCGI //支持fastcgi方式啟動(dòng)PHP
--enable-force-CGI-redirect //重定向方式啟動(dòng)PHP
--with-ncurses //支持ncurses 屏幕繪制以及基于文本終端的圖形互動(dòng)功能的動(dòng)態(tài)庫(kù)
--enable-pcntl //freeTDS需要用到的,可能是鏈接mssql 才用到
--with-mcrypt //mcrypt算法的擴(kuò)展
--with-mhash //mhash算法的擴(kuò)展
以上函數(shù)庫(kù)需要安裝
--with-gmp 應(yīng)該是支持一種規(guī)范
--enable-inline-optimization 優(yōu)化線程
--with-openssl //openssl的支持,加密傳輸時(shí)用到的
--enable-dbase //建立DBA 作為共享模塊
--with-pcre-dir=/usr/local/bin/pcre-config //perl的正則庫(kù)案安裝位置
--disable-dmalloc
--with-gdbm //dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte //支持zend的多字節(jié)
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap
2.apxs2方式:
(1)參數(shù)
./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=usr/lib64/mysql --with-mysqli --with-iconv-dir=/usr/local/libiconv --with-config-file-scan-dir=/usr/local/php/php.d --with-mhash=/usr --with-bz2 --with-curl --with-freetype-dir --with-gd --with-gettext --with-gmp --with-imap --with-imap-ssl --with-jpeg-dir --with-kerberos --with-ldap --with-mcrypt --with-openssl --without-pear --with-pdo-mysql --with-png-dir --with-xmlrpc --with-zlib --enable-bcmath --enable-calendar --enable-ctype --enable-dom --enable-exif --enable-ftp --enable-gd-native-ttf --enable-json --enable-mbstring --enable-pcntl --enable-session --enable-shmop --enable-simplexml --enable-soap --enable-sockets --enable-tokenizer --enable-wddx --enable-xml --enable-zip
(2)說(shuō)明
--prefix=/usr/local/php //指定 php 安裝目錄
--with-apxs2=/usr/local/apache/bin/apxs //整合apache,apxs功能是使用mod_so中的LoadModule指令,加載指定模塊到 apache,要求 apache 要打開SO模塊
--with-config-file-path=/usr/local/php/etc //指定php.ini位置
--with-MySQL=/usr/local/mysql //mysql安裝目錄,對(duì)mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config //mysqli擴(kuò)展技術(shù)不僅可以調(diào)用MySQL的存儲(chǔ)過(guò)程、處理MySQL事務(wù),而且還可以使訪問(wèn)數(shù)據(jù)庫(kù)工作變得更加穩(wěn)定。
--enable-safe-mode 打開安全模式
--enable-ftp 打開ftp的支持
--enable-zip 打開對(duì)zip的支持
--with-bz2 打開對(duì)bz2文件的支持
--with-jpeg-dir 打開對(duì)jpeg圖片的支持
--with-png-dir 打開對(duì)png圖片的支持
--with-freetype-dir 打開對(duì)freetype字體庫(kù)的支持
--with-iconv 打開iconv函數(shù),各種字符集間的轉(zhuǎn)換
--with-libXML-dir 打開libxml2庫(kù)的支持
--with-XMLrpc 打開xml-rpc的c語(yǔ)言
--with-zlib-dir 打開zlib庫(kù)的支持
--with-gd 打開gd庫(kù)的支持
--enable-gd-native-ttf 支持TrueType字符串函數(shù)庫(kù)
--with-curl 打開curl瀏覽工具的支持
--with-curlwrappers 運(yùn)用curl工具打開url流
--with-ttf 打開freetype1.*的支持,可以不加了
--with-xsl 打開XSLT 文件支持,擴(kuò)展了libXML2庫(kù) ,需要libxslt軟件
--with-gettext 打開gnu 的gettext 支持,編碼庫(kù)用到
--with-pear 打開pear命令的支持,PHP擴(kuò)展用的
--enable-calendar 打開日歷擴(kuò)展功能
--enable-mbstring 多字節(jié),字符串的支持
--enable-bcmath 打開圖片大小調(diào)整,用到zabbix監(jiān)控的時(shí)候用到了這個(gè)模塊
--enable-sockets 打開 sockets 支持
--enable-exif 圖片的元數(shù)據(jù)支持
--enable-magic-quotes 魔術(shù)引用的支持
--disable-rpath 關(guān)閉額外的運(yùn)行庫(kù)文件
--disable-debug 關(guān)閉調(diào)試模式
--with-mime-magic=/usr/share/file/magic.mime 魔術(shù)頭文件位置
3.補(bǔ)充
1>指定了--with-apxs2=/usr/local/apache/bin/apxs以后,就不要再激活--enable-fpm和--enable-fastCGI,apxs是以php module的模式加載PHP的。
2>Mysql在編譯了Mysql開發(fā)library以后,可以不用指定mysql的路徑。
3>PHP編譯存在基礎(chǔ)的依賴的關(guān)系,編譯PHP首先需要安裝XML擴(kuò)展,因?yàn)?/span>php5核心默認(rèn)打開了XML的支持,其他的基礎(chǔ)庫(kù),相應(yīng)需要:
4>GD -> zlib, Png, Jpg, 如果需要支持其他,仍需要根據(jù)實(shí)際情況編譯擴(kuò)展庫(kù),ttf庫(kù)需要freetype庫(kù)的支持。
5>--enable-magic-quotes,是一個(gè)極其不推薦的參數(shù),當(dāng)然,如果你需要PHP為你做這些底下的工作,實(shí)際上他也沒(méi)有很徹底的解決問(wèn)題。
6>-with-openssl,需要openssl庫(kù)。
mysqli是MySQL團(tuán)隊(duì)提供的MySQL驅(qū)動(dòng),具有很多實(shí)用的功能和典型特征。不過(guò)他不是MySQL于PHP平臺(tái)最好的選擇,PDO被證實(shí),是一個(gè)簡(jiǎn)易、高并發(fā)性,而且易于創(chuàng)建和回收的標(biāo)準(zhǔn)接口。不過(guò)PDO也經(jīng)歷了5.3以前的內(nèi)存溢出的問(wèn)題,在5.3以后,在讀取Oracle的LOB資源時(shí),若不對(duì)內(nèi)存進(jìn)行限制,仍會(huì)內(nèi)存溢出。
如果是產(chǎn)品模式,好像pear、shmop、ftp等,都不推薦使用,他們要做的事情,用C/C++,用Java,甚至其他腳本語(yǔ)言,都有很好很快速的選擇,無(wú)需局限于使用PHP去實(shí)現(xiàn)。不熟悉的類庫(kù)和不常用的庫(kù),也不推薦使用。magic-quote、session.auto_start、PHP服務(wù)器信息、PHP報(bào)錯(cuò)信息等在編譯完成后,應(yīng)該第一時(shí)間關(guān)閉,避免暴露服務(wù)器信息。