摘要:安裝原生擴展以為例,這是國際化的擴展。將會把源碼編譯成將會把移動到當前安裝的的擴展目錄。安裝第三方擴展將以這個擴展為例,這個擴展主要實現了識別條形碼的功能。
本文參考
一開始安裝PHP的時候,我們并不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx
但有的時候并非我們所愿,源里面并沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地Linux平臺下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 打印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntusudo apt-get install php5-dev php5-mysql gcc libpcre3-devFedora
sudo yum install php-devel php-mysqlnd gcc libtoolRHEL
sudo yum install php-devel php-mysql gcc libtoolSuse
yast2 -i php5-pear php5-devel php5-mysql gcc安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2 tar xvjf php-5.5.9.tar.bz2 cd php-5.5.9
前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安裝成功之后進入/ext/intl 目錄:
cd intl phpize ./configure --enable-intl make sudo make install
下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當于告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最后給出示例。
安裝第三方擴展將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver cd mongo-php-driver phpize ./configure make sudo make install
將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以多帶帶建一個ini文件,然后在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`
這個目錄里可以放新建的ini文件,然后執行
sudo touch mongo.ini echo "extension=mongo.so" | sudo tee -a mongo.ini sudo touch intl.ini echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令將會創建ini文件,并且寫如相應的配置信息。
然后執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo sudo php5enmod intl
如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最后在執行一下重啟操作就可以了:
sudo service nginx restart sudo service php5-fpm restart
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30204.html
摘要:獨立的擴展可以獨立于源碼之外進行分發。定義一個新擴展我們給示例擴展命名為。對于一個獨立擴展來說,你只需要做一些宏調用即可。通過以上的步驟,你已經有了一個獨立的擴展了。 本文翻譯自 PHP 源碼中的 README.SELF-CONTAINED-EXTENSIONS。文中標記了 注 的內容均為自己添加。內容有點老,也挺啰嗦,沒講什么深入的內容,但是可以作為入門學習參考。 獨立的 PHP 擴...
摘要:這里看到,表明你的擴展已經加載成功了,現在就可以調用這個擴展函數了。是不是很簡單更多上面的例子還比較簡單,只是編寫了一個擴展函數。 PHP-X是我在2017年年初創建的一個新項目。這個項目的目標就是讓有一定工作經驗的PHP程序都能夠具備擴展開發的能力。 0x00 初衷 從2012年開始編寫swoole,現在算來已經有5個年頭了。我發現編寫一個 PHP 擴展這個工作非常艱難。PHP 程序...
摘要:最近手里有個項目需要用用緩存,權衡之下選擇,沒想到這里面水還挺深。說明是獨立于語言的,如果用操作的話,自然要安裝擴展,但是在環境下和自己配置的環境是不一樣的,里面源碼是殘缺的,具體原因我也沒查,所以需要自己下載源碼編譯。 最近手里有個項目需要用用緩存,權衡之下選擇redis,沒想到這里面水還挺深。 說明 Redis是獨立于語言的,如果用PHP操作的話,自然要安裝PHP Redis擴展,...
摘要:的包管理器是,用來瀏覽并搜索查看最新發行版下載。的包管理器是下一代的,使用編寫,以格式發布。二發布時間軸三安裝與使用安裝主要是安裝和這兩個包管理器,然后通過包管理器安裝其他。 PHP社區提供了幾個管理擴展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情況下去使用這些工具必然會出現困惑,所以下面就簡單介紹下這幾個管理工具。 一、簡介 下面簡要介紹 Pear、P...
閱讀 2961·2021-11-22 15:25
閱讀 2245·2021-11-18 10:07
閱讀 1052·2019-08-29 15:29
閱讀 479·2019-08-29 13:25
閱讀 1511·2019-08-29 12:58
閱讀 3206·2019-08-29 12:55
閱讀 2918·2019-08-29 12:28
閱讀 509·2019-08-29 12:16