如何編譯安裝PHP擴充____PHP

來源:互聯網
上載者:User

本文參考

一開始安裝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 codewget http://cn2.php.net/distributions/php-5.5.9.tar.bz2tar xvjf php-5.5.9.tar.bz2cd 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 intlphpize./configure --enable-intlmakesudo 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-drivercd mongo-php-driverphpize./configuremakesudo make install

將會產生一個檔案,將其拷貝到PHP的擴充目錄下面。 啟用擴充

在php.ini中啟用擴充的方式有很多: 直接在php.ini檔案中添加 extension=mongo.so,這是最簡單直接的方法。 也可以單獨建一個ini檔案,然後在php.ini中包含這些檔案就可以了。

下面介紹一下第二種方法:

cd `/etc/php5/mods-available`

這個目錄裡可以放建立的ini檔案,然後執行

sudo touch mongo.iniecho "extension=mongo.so" | sudo tee -a mongo.inisudo touch intl.iniecho "extension=intl.so" | sudo tee -a intl.ini

上面的命令將會建立ini檔案,並且寫如相應的配置資訊。

然後執行下面的命令啟用擴充即可(需要安裝 php5enmod 工具):

sudo php5enmod mongosudo php5enmod intl

如果未安裝 php5enmod 工具,則需要手動設定:

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.iniln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.iniln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.iniln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最後在執行一下重啟操作就可以了:

sudo service nginx restartsudo service php5-fpm restart

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.