./configure --enable-curl
./configure --with-curl
1.enable和with參數(shù)命令有什么區(qū)別?
2.如何將擴(kuò)展編譯進(jìn)php,而不是以.so動(dòng)態(tài)擴(kuò)展形式存在?
3.哪些擴(kuò)展是php官方支持的呢?是php源碼包ext目錄下的就是php官方支持的么?可以編譯進(jìn)php的?
4.使用什么命令將官方支持的擴(kuò)展編譯進(jìn)php?
如果我需要配置memcached拓展該如何做?具體怎么加模塊我已經(jīng)知道,我現(xiàn)在想知道的是能不能再編譯php的時(shí)候就直接加上?會(huì)不會(huì)自動(dòng)幫我下載需要的第三方安裝包?
如果需要支持laravel5.5,我安裝php的時(shí)候需要如何編譯php?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/php/etc
--with-MySQL=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--enable-safe-mode
--enable-ftp
--enable-zip
--with-bz2
--with-jpeg-dir
配置 | 說(shuō)明 |
---|---|
--with-png-dir | 打開對(duì)png圖片的支持 |
--with-freetype-dir | 打開對(duì)freetype字體庫(kù)的支持 |
--without-iconv | 關(guān)閉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ù)頭文件位置 |
配置 | 說(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 才用到 |
配置 | 說(shuō)明 |
---|---|
--with-mcrypt | 算法 |
--with-mhash | 算法
Mysql在編譯了Mysql開發(fā)library以后,可以不用指定mysql的路徑。
PHP編譯存在基礎(chǔ)的依賴的關(guān)系,編譯PHP首先需要安裝XML擴(kuò)展,因?yàn)閜hp5核心默認(rèn)打開了XML的支持,其他的基礎(chǔ)庫(kù),相應(yīng)需要:
GD -> zlib, Png, Jpg, 如果需要支持其他,仍需要根據(jù)實(shí)際情況編譯擴(kuò)展庫(kù),ttf庫(kù)需要freetype庫(kù)的支持。
--enable-magic-quotes,是一個(gè)極其不推薦的參數(shù),當(dāng)然,如果你需要PHP為你做這些底下的工作,實(shí)際上他也沒有很徹底的解決問(wèn)題。
--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ù)器信息。
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)類似一個(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)窘境的