本文參考
一開始安裝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