編譯PHP常用的參數(shù)的解釋
代碼如下:
--prefix=/usr/local/php #指定 php 安裝目錄
--with-apxs2=/usr/local/apache/bin/apxs #整合apache,apxs功能是使用mod_so中的LoadModule指令,加載指定模塊到 apache,要求 apache 要打開(kāi)SO模塊
--with-config-file-path=/usr/local/php/etc #用來(lái)指定 php3.ini 或 php4.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)定。
--with-mysql-sock=/tmp/mysql.sock #指定mysql套接字文件位置
--enable-safe-mode #打開(kāi)安全模式,默認(rèn)值是打開(kāi)的
--disable-short-tags #配置本選項(xiàng)后,PHP 的程序就不能使用短的標(biāo)記,一定要用的長(zhǎng)標(biāo)記
--with-exec-dir=DIR #PHP 執(zhí)行路徑(有時(shí)為了系統(tǒng)的安全性考慮,會(huì)指定 PHP 程序一定要在哪個(gè)目錄執(zhí)行)
--enable-ftp #打開(kāi)ftp的支持
--enable-zip #打開(kāi)對(duì)zip的支持
--with-bz2 #打開(kāi)對(duì)bz2文件的支持
--with-jpeg-dir #打開(kāi)對(duì)jpeg圖片的支持
--with-png-dir #打開(kāi)對(duì)png圖片的支持
--with-freetype-dir #打開(kāi)對(duì)freetype字體庫(kù)的支持
--without-iconv #關(guān)閉iconv函數(shù),各種字符集間的轉(zhuǎn)換
--with-libXML-dir #打開(kāi)libxml2庫(kù)的支持
--with-XMLrpc #打開(kāi)xml-rpc的c語(yǔ)言
--with-zlib-dir #打開(kāi)zlib庫(kù)的支持
--with-gd #打開(kāi)gd庫(kù)的支持
--enable-gd-native-ttf #支持TrueType字符串函數(shù)庫(kù)
--with-curl #打開(kāi)curl瀏覽工具的支持
--with-curlwrappers #運(yùn)用curl工具打開(kāi)url流
--with-ttf #打開(kāi)freetype1.*的支持,可以不加了
--with-xsl #打開(kāi)XSLT 文件支持,擴(kuò)展了libXML2庫(kù) ,需要libxslt軟件
--with-gettext #打開(kāi)gnu 的gettext 支持,編碼庫(kù)用到
--with-pear #打開(kāi)pear命令的支持,PHP擴(kuò)展用的
--enable-calendar #打開(kāi)日歷擴(kuò)展功能
--enable-mbstring #多字節(jié),字符串的支持
--enable-sqlite-utf8 #使sqllite支持utf-8
--enable-bcmath #打開(kāi)圖片大小調(diào)整,用到zabbix監(jiān)控的時(shí)候用到了這個(gè)模塊
--enable-sockets #打開(kāi) sockets 支持
--enable-exif #圖片的元數(shù)據(jù)支持
--enable-magic-quotes #魔術(shù)引用的支持
--disable-rpath #關(guān)閉額外的運(yùn)行庫(kù)文件
--disable-debug #關(guān)閉調(diào)試模式
--enable-debug #本選項(xiàng)一般不會(huì)使用,除非在開(kāi)發(fā) PHP 程序時(shí)比較有用。它可以顯示額外的錯(cuò)誤信息
--with-ldap=DIR #若要使用目錄協(xié)議 (Lightweight Directory Access Protocol, LDAP) 則必須要打開(kāi)本選項(xiàng)。有關(guān) LDAP 的細(xì)節(jié),可以參考 RFC 文件的 RFC1777 及 RFC1778
--with-mime-magic=/usr/share/file/magic.mime #魔術(shù)頭文件位置
--with-apache=DIR #用本選項(xiàng)可以讓 PHP 以apache的模塊方式使用,DIR 的字符串可以是 /usr/local/apache 或其它安裝apache的目錄
--with-custom-odbc=DIR #使用自訂的 ODBC 函數(shù)庫(kù)。當(dāng)然,在使用本方式時(shí)要指定 CUSTOM_ODBC_LIBS 及 CFLAGS 變量。例如在 QNX 機(jī)器上使用 Sybase SQL Anywhere 時(shí)可能要配置系統(tǒng)環(huán)境變量 CFLAGS=-DODBC_QNX、LDFLAGS=-lunix 及 CUSTOM_ODBC_LIBS="-ldblib -lodbc",并要在 PHP 配置加入 --with-custom-odbc=/usr/lib/sqlany50
--with-oracle=DIR #使用 Oracle 數(shù)據(jù)庫(kù)。Oracle 的版本要在 7.3 版以上。您也可以在 PHP 程序中使用環(huán)境變量 ORACLE_HOME 來(lái)指定 Oracle 的路徑。更多有關(guān) Oracle 的信息請(qǐng)參考 Oracle 的網(wǎng)站 http://www.oracle.com
--with-sybase=DIR #使用 Sybase 數(shù)據(jù)庫(kù)。更多有關(guān) Sybase 的信息請(qǐng)參考 Sybase 的網(wǎng)站 http://www.sybase.com
--with-sybase-ct=DIR #使用 Sybase-CT 數(shù)據(jù)庫(kù)
CGI方式安裝常用的參數(shù):
代碼如下:
--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
備注:需要單獨(dú)安裝的擴(kuò)展
1. gd庫(kù)。
2. ming的擴(kuò)展。
3. mhash和mcrypt的擴(kuò)展
1>指定了--with-apxs2=/usr/local/apache/bin/apxs以后,就不要再激活--enable-fpm和--enable-fastCGI,apxs是以php module的模式加載PHP的。
2>Mysql在編譯了Mysql開(kāi)發(fā)library以后,可以不用指定mysql的路徑。
3>PHP編譯存在基礎(chǔ)的依賴的關(guān)系,編譯PHP首先需要安裝XML擴(kuò)展,因?yàn)閜hp5核心默認(rèn)打開(kāi)了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)。不熟悉的類(lèi)庫(kù)和不常用的庫(kù),也不推薦使用。magic-quote、session.auto_start、PHP服務(wù)器信息、PHP報(bào)錯(cuò)信息等在編譯完成后,應(yīng)該第一時(shí)間關(guān)閉,避免暴露服務(wù)器信息。
PHP對(duì)應(yīng)的Web Server模式,Module、fastcgi、fpm只需要一種即可,服務(wù)器不是你的試驗(yàn)田。fastcgi可以選擇Nginx和lighttpd,其實(shí)Nginx也是使用lighttpd的spwan-fcgi進(jìn)行fcgi進(jìn)程管理的。fpm是使用PHP自身去管理多進(jìn)程,有點(diǎn)類(lèi)似一個(gè)后端代理。無(wú)論什么模式,在發(fā)布產(chǎn)品服務(wù)器,都應(yīng)該做進(jìn)程和線程調(diào)優(yōu),做足夠多的性能及壓力方面的測(cè)試,找出最好的進(jìn)程數(shù)組合。
選好一種PHP OPCode cache的擴(kuò)展,這個(gè)也是很重要的,linux 2.6核心下,fcgi下,xcache有較好的實(shí)踐經(jīng)驗(yàn),其他的在并發(fā)數(shù)增加以后,性能衰減嚴(yán)重。如果真的想體驗(yàn),寧可編譯多幾個(gè)PHP版本,也不要針對(duì)一個(gè)版本的PHP集合各種擴(kuò)展,適應(yīng)各種環(huán)境,這會(huì)讓把你自己逼進(jìn)窘境的。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄