Linux編譯安裝PHP參數說明

  • php各參數配置詳解
--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安裝目錄,對mysql的支持 --with-mysqli=/usr/local/mysql/bin/mysql_config //mysqli擴展技術不只能夠調用MySQL的存儲過程、處理MySQL事務, //並且還可使訪問數據庫工做變得更加穩定。 --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 //重定向方式啓動PHP --with-ncurses //支持ncurses 屏幕繪製以及基於文本終端的圖形互動功能的動態庫 --enable-pcntl //freeTDS須要用到的,多是連接mssql 纔用到 --with-mcrypt //mcrypt算法的擴展 --with-mhash //mhash算法的擴展 //以上函數庫須要安裝 --with-gmp //應該是支持一種規範 --enable-inline-optimization //優化線程 --with-openssl //openssl的支持,加密傳輸時用到的 --enable-dbase //創建DBA 做爲共享模塊 --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 

  • 注意事項
  • 指定了--with-apxs2=/usr/local/apache/bin/apxs之後,就不要再激活--enable-fpm和--enable-fastCGI,apxs是以php module的模式加載PHP的。javascript

  • Mysql在編譯了Mysql開發library之後,能夠不用指定mysql的路徑。php

  • PHP編譯存在基礎的依賴的關係,編譯PHP首先須要安裝XML擴展,由於php5核心默認打開了XML的支持,其餘的基礎庫,相應須要:GD -> zlib, Png, Jpg, 若是須要支持其餘,仍須要根據實際狀況編譯擴展庫,ttf庫須要freetype庫的支持。java

  • --enable-magic-quotes,是一個極其不推薦的參數,固然,若是你須要PHP爲你作這些底下的工做,實際上他也沒有很完全的解決問題。mysql

  • --with-openssl,須要openssl庫。mysqli是MySQL團隊提供的MySQL驅動,具備不少實用的功能和典型特徵。不過他不是MySQL於PHP平臺最好的選擇,PDO被證明,是一個簡易、高併發性,並且易於建立和回收的標準接口。不過PDO也經歷了5.3之前的內存溢出的問題,在5.3之後,在讀取Oracle的LOB資源時,若不對內存進行限制,仍會內存溢出。
    若是是產品模式,好像pear、shmop、ftp等,都不推薦使用,他們要作的事情,用C/C++,用Java,甚至其餘腳本語言,都有很好很快速的選擇,無需侷限於使用PHP去實現。不熟悉的類庫和不經常使用的庫,也不推薦使用。magic-quote、session.auto_start、PHP服務器信息、PHP報錯信息等在編譯完成後,應該第一時間關閉,避免暴露服務器信息。linux

    PHP對應的Web Server模式,Module、fastcgi、fpm只須要一種便可,服務器不是你的試驗田。fastcgi能夠選擇Nginx和lighttpd,其實Nginx也是使用lighttpd的spwan-fcgi進行fcgi進程管理的。fpm是使用PHP自身去管理多進程,有點相似一個後端代理。不管什麼模式,在發佈產品服務器,都應該作進程和線程調優,作足夠多的壓力測試,找出最好的進程數組合。算法

    選好一種PHP OPCode cache的擴展,這個也是很重要的,linux 2.6核心下,fcgi下,xcache有較好的實踐經驗,其餘的在併發數增長之後,性能衰減嚴重。sql

    若是真的想體驗,寧肯編譯多幾個PHP版本,也不要針對一個版本的PHP集合各類擴展,適應各類環境,這會讓把你本身逼進窘境的。數據庫




轉 --- 連接:https://www.jianshu.com/p/0a79847c8151

apache

相關文章
相關標籤/搜索