./configure --enable-curl
./configure --with-curl
1.enable和with參數指令有什麼不同?
2.如何將擴充編譯進php,而不是以.so動態擴展形式存在?
3.哪些擴充是php官方支援的呢?是php源碼包ext目錄下的就是php官方支援的麼?可以編譯進php的?
4.使用什麼指令將官方支援的擴充編譯進php?
如果我需要設定memcached拓展該如何做?具體怎麼加模組我已經知道,我現在想知道的是能不能再編譯php的時候就直接加上?會不會自動幫我下載需要的第三方安裝包?
如果需要支援laravel5.5,我安裝php的時候需要如何編譯php?
指定 php 安裝目錄
整合 apache,apxs功能是使用mod_so中的LoadModule指令,載入指定模組到 apache,要求 apache 要開啟SO模組
指定php.ini位置
mysql安裝目錄,對mysql的支援
mysqli擴充技術不僅可以呼叫MySQL的預存程序、處理MySQL事務,還可以讓存取資料庫工作變得更穩定。
開啟安全模式
打開ftp的支援
開啟對zip的支援
開啟對bz2檔案的支援
開啟對jpeg圖片的支援
CGI方式安裝才用的參數
mhash和mcrypt演算法的擴展
--with-mhash | 演算法
Mysql在編譯了Mysql開發library以後,可以不用指定mysql的路徑。
PHP編譯存在基礎的依賴的關係,編譯PHP首先需要安裝XML擴展,因為php5核心預設開啟了XML的支持,其他的基礎庫,相應需要:
GD -> zlib, Png, Jpg, 如果需要支援其他,仍需要根據實際情況編譯擴充函式庫,ttf函式庫需要freetype函式庫的支援。
--enable-magic-quotes,是一個極不推薦的參數,當然,如果你需要PHP為你做這些底下的工作,實際上他也沒有很徹底的解決問題。
--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報錯資訊等在編譯完成後,應該第一時間關閉,避免暴露伺服器資訊。
PHP對應的Web Server模式,Module、fastcgi、fpm只需要一種即可,伺服器不是你的試驗田。 fastcgi可以選擇Nginx和lighttpd,其實Nginx也是使用lighttpd的spwan-fcgi進行fcgi進程管理的。 fpm是使用PHP本身去管理多進程,有點類似一個後端代理。無論什麼模式,在發布產品伺服器,都應該做進程和執行緒調優,做足夠多的壓力測試,找出最好的進程數組合。
選好一種PHP OPCode cache的擴展,這個也是很重要的,linux 2.6核心下,fcgi下,xcache有較好的實踐經驗,其他的在並發數增加以後,性能衰減嚴重。
如果真的想體驗,寧可編譯多幾個PHP版本,也不要針對一個版本的PHP集合各種擴展,適應各種環境,這會讓把你自己逼進窘境的