linux下php編譯的時候./configure如何設定?
迷茫
迷茫 2017-05-16 13:03:51
0
1
702

./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?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
左手右手慢动作

指定 php 安裝目錄

--prefix=/usr/local/php

整合 apache,apxs功能是使用mod_so中的LoadModule指令,載入指定模組到 apache,要求 apache 要開啟SO模組

--with-apxs2=/usr/local/apache/bin/apxs

指定php.ini位置

--with-config-file-path=/usr/local/php/etc               

mysql安裝目錄,對mysql的支援

--with-MySQL=/usr/local/mysql

mysqli擴充技術不僅可以呼叫MySQL的預存程序、處理MySQL事務,還可以讓存取資料庫工作變得更穩定。

--with-mysqli=/usr/local/mysql/bin/mysql_config            

開啟安全模式

--enable-safe-mode    

打開ftp的支援

--enable-ftp    

開啟對zip的支援

--enable-zip    

開啟對bz2檔案的支援

--with-bz2            

開啟對jpeg圖片的支援

--with-jpeg-dir    
配置 說明
--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 才用到

mhash和mcrypt演算法的擴展

配置 說明
--with-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集合各種擴展,適應各種環境,這會讓把你自己逼進窘境的

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板