国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何編譯安裝PHP擴展

curried / 3536人閱讀

摘要:安裝原生擴展以為例,這是國際化的擴展。將會把源碼編譯成將會把移動到當前安裝的的擴展目錄。安裝第三方擴展將以這個擴展為例,這個擴展主要實現了識別條形碼的功能。

  

本文參考

一開始安裝PHP的時候,我們并不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。

安裝PHP擴展最簡單的辦法就是

sudo apt-get install php5-xxx

但有的時候并非我們所愿,源里面并沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。

這篇文章中我將介紹在本地Linux平臺下編譯安裝PHP擴展的方法。

現在網站根目錄下創建 index.php 打印基本的配置信息,以驗證我們是否安裝成功。

配置編譯環境

我們需要安裝一些編譯必須的庫,還有 php-dev 版本

Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
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 擴展(譯)

    摘要:獨立的擴展可以獨立于源碼之外進行分發。定義一個新擴展我們給示例擴展命名為。對于一個獨立擴展來說,你只需要做一些宏調用即可。通過以上的步驟,你已經有了一個獨立的擴展了。 本文翻譯自 PHP 源碼中的 README.SELF-CONTAINED-EXTENSIONS。文中標記了 注 的內容均為自己添加。內容有點老,也挺啰嗦,沒講什么深入的內容,但是可以作為入門學習參考。 獨立的 PHP 擴...

    JerryZou 評論0 收藏0
  • 如何基于 PHP-X 快速開發一個 PHP 擴展

    摘要:這里看到,表明你的擴展已經加載成功了,現在就可以調用這個擴展函數了。是不是很簡單更多上面的例子還比較簡單,只是編寫了一個擴展函數。 PHP-X是我在2017年年初創建的一個新項目。這個項目的目標就是讓有一定工作經驗的PHP程序都能夠具備擴展開發的能力。 0x00 初衷 從2012年開始編寫swoole,現在算來已經有5個年頭了。我發現編寫一個 PHP 擴展這個工作非常艱難。PHP 程序...

    callmewhy 評論0 收藏0
  • MAMP下安裝PHP Redis擴展及Redis下載使用

    摘要:最近手里有個項目需要用用緩存,權衡之下選擇,沒想到這里面水還挺深。說明是獨立于語言的,如果用操作的話,自然要安裝擴展,但是在環境下和自己配置的環境是不一樣的,里面源碼是殘缺的,具體原因我也沒查,所以需要自己下載源碼編譯。 最近手里有個項目需要用用緩存,權衡之下選擇redis,沒想到這里面水還挺深。 說明 Redis是獨立于語言的,如果用PHP操作的話,自然要安裝PHP Redis擴展,...

    GraphQuery 評論0 收藏0
  • PHP 包與擴展的管理工具 Pear、Composer 與 Pecl

    摘要:的包管理器是,用來瀏覽并搜索查看最新發行版下載。的包管理器是下一代的,使用編寫,以格式發布。二發布時間軸三安裝與使用安裝主要是安裝和這兩個包管理器,然后通過包管理器安裝其他。 PHP社區提供了幾個管理擴展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情況下去使用這些工具必然會出現困惑,所以下面就簡單介紹下這幾個管理工具。 一、簡介 下面簡要介紹 Pear、P...

    Batkid 評論0 收藏0

發表評論

0條評論

curried

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<