【轉】如何編譯安裝PHP擴展

本文參考javascript

一開始安裝PHP的時候,咱們並不知道須要哪些擴展,因此只有等到咱們真正用到的時候纔想辦法去安裝。php

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

sudo apt-get install php5-xxx 

但有的時候並不是咱們所願,源裏面並無咱們須要的擴展,這時候就須要咱們下載源碼本身編譯安裝了。mysql

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

如今網站根目錄下建立 index.php 打印基本的配置信息,以驗證咱們是否安裝成功。git

配置編譯環境

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

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原生的可是默認沒有安裝的,另外一種的第三方開發的擴展。sql

下面依次介紹兩種擴展的安裝方法:mongodb

安裝以前咱們須要一份和當前機器上相同版本的PHP源碼bash

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中啓用擴展的方式有不少:

  1. 直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
  2. 也能夠單獨建一個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
相關文章
相關標籤/搜索