LINUX下PHP編譯添加相應的動態擴充模組so(不需要重新編譯PHP,以openssl.so為例)

來源:互聯網
上載者:User

標籤:find   bin   性問題   階段   ext   虛擬   重啟   .so檔案   相關   

本文轉自:原文連結  http://www.cnblogs.com/doseoer/p/4367536.html

網上我看到有很多相關的文章都是簡述這個問題的,但畢竟因為LINUX版本眾多,很多LIUNX命令或路徑都有所差別,有時同樣的命令卻不能執行一樣的操作。

這篇文章是我在實際運用當中配置成功的執行個體,希望對大家有所協助,開源是來自每個人的無私協助,每個人的成長都是需要別人的扶植!廢話就說到這了!

http://php.net/downloads.php  (相應PHP版本下載)

1、首先確定LINUX下已安裝的PHP版本,因為不同PHP版本對於追加動態模組有相容性問題(可能路徑,配置?其他?),往往報錯不能安裝,追加的模組必須版本一致。

查看PHP版本有多種方法:

①運行php -v(但在我的64位LIUNX測試過沒作用,原因你知道的了!)

②在已安裝好的PHP路徑下找到php-config並進行查看,可以vi或cat (關鍵字:version="XXXXXXX"為PHP版本號碼)

vi 或cat php-config

2、下載好的PHP原始碼包需人工上傳到FTP網路伺服器上,這時你的tar包可能只是放在WWW下,為了你自己方便尋找和使用,建議建立自己的source檔案夾進行存放。

建立檔案夾:mkdir XXXXXX(檔案夾名)

移動或複製檔案:mv或cp php.tar /sourece(注意路徑,”/“我是在根目錄下建立的臨時檔案夾!)

解壓tar包:tar zxfv php.tar(原始碼tar包)

3、現在進入正題了,以追加動態模組openssl.so為例,進入PHP源碼檔案夾後,執行phpize產生configure進行模組追加:

#cd /source/php/ext/openssl    進入源碼包的OPENSSL模組檔案夾

#/var/www/php/bin/phpize     注意這個是已安裝好的PHP路徑(有些是版本可能是在/usr/local/******下,每個人的安裝習慣不同)

如出現以下錯誤:Cannot find config.m4. *****************************************

解決方案:

查看源碼包OPENSSL檔案夾下是否有config0.m4,如果有可執行,
#mv config0.m4 config.m4

4、進入最後的編譯階段了,我編譯時間是比較順利的(有時ERROR如果出現,我也不好做闡述,只能靠自己查看errorlog日誌了)

#./configure --with-openssl --with-php-config=/var/www/php/bin/php-config(注意:這個參數後的是你本機已安裝好的PHP路徑)
#make

#make test (測試編譯結果)

#make install

當成功時會返回成功資訊(注意查看,SO檔案的所在位置): 

  Installing shared extensions:     /usr/lib/20060613/(這路徑是我虛擬,正確請自己尋找,會產生openssl.so檔案)

一般規範點的話,會把追加的SO模組放在一個指定的檔案夾裡,就在PHP安裝好的目錄下的extensions檔案夾內

#mv /*****/*****/openssl.so /var/www/php/lib/php/extensions

動態模組追加編譯已全部完成了。。。。

最後就是要PHP支援載入這些追加的動態模組了,vi編輯PHP下的設定檔php.ini。

#vi /*******/*******/php.ini

進入編輯器後可以看到PHP的所有相關配置,尋找extension_dir這個配置的選項,

vi後可直接‘/extension_dir '尋找,找到後可能是這樣的:

extension_dir  = "./"

需修改成: 

extension_dir  = "/var/www/php/lib/php/extensions/"   (注意是so檔案的所在)

extension=openssl.so   (so模組檔案名稱)
最後儲存退出! :wq!

接著就是重啟 apache伺服器了!(有說人不用,但也就一個命令,我覺得配置好重啟還是安心點!)

可以用命令查看下PHP的運行載入:    /var/www/php/bin/php -m|grep openssl   (路徑啥的我就不說了,就是安裝好的PHP路徑就是了)

出現的資訊可能會出現一些錯誤,但都是沒關係的:類似找不到什麼DLL檔案啊(openssl.dll之類的),別管他,DLL是WINDOWS主機伺服器模組載入的類型,UNIX和LINUX是以SO為模組載入名的!

 

LINUX下PHP編譯添加相應的動態擴充模組so(不需要重新編譯PHP,以openssl.so為例)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.