安裝php擴展模塊
1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。
[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets
在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。
[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize
2、進行編譯安裝
[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config
[root@redhat5 sockets]#make
[root@redhat5 sockets]#make install
執行完make install屏幕上會提示sockets.so存放的路徑,然後把它復制到php的extensions目錄中,例如我的路徑為 /home/webserver/php5.2.12/lib/php/extensions
3、修改php.ini文件
找到extension_dir = "./" 這行,修改為:
extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"
然後再新增加一行:
extension=sockets.so
4、重啟apache即可生效。 希望能幫到你,我還要抓緊時間自己在後盾人自己學習呢,一起加油吧(づ ̄ ³ ̄)づ
B. 如何安裝 php 的zip模塊
第一步、找到php.ini文件第二部、用記事本打開第三步、使用ctrl鍵+F鍵搜索;extension=php_zip.dll第四步、去除extension前面的分號「;」,如extension=php_zip.dll第五步、保存重啟Apache或其他伺服器。如圖:
C. 如何編譯安裝PHP擴展
一開始安裝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
D. 如何安裝 php 的zip模塊
zip 是php的一個擴展,用於支持zip文件壓縮和解壓
按照下面的步驟配置:
1. 用記事本編輯你的 php.ini 文件,搜索 zip.dll 然後把這一行前面的 ; (分號)去掉,保存 php.ini 注意,這一行的上面應該有很多諸如 ;php_***.dll 的,否則搜索的位置不正確,再次搜索
2. 重新啟動你的 WEB 伺服器。IIS直接在 開始 運行 裡面輸入 iisreset, Apache 通過管理器先停止再啟動即可
E. 如何安裝PHP模塊
php模塊安裝的方式
1、靜態安裝
將先將在安裝php之前先將需要安裝的程序裝上,如ftp、mhash、mcrypt……安裝完成後,解壓php安裝包,執行./configure
--with-ftp
--with-mhash
--wth-mcrypt等等。後面具體跟的參數可以參看./configure
--help查看。編譯好後,執行make
&&
make
install
就行了。
2、動態安裝
而在往往我們進行編譯php時經常會忘記添加某擴展,後來想添加擴展,但是因為安裝php後又裝了一些東西如PEAR等,不想再重新裝php,於是可以採用phpize來動態載入需要安裝的模塊。
具體實現方法如下(這里以忘記安裝pdo_mysql模塊為例):
cd
/root/source/php-5.3.10/ext/pdo_mysql
/usr/local/php/bin/phpize
在安裝完mysql後,並不是進入/root/source/mysql-5.5.21目錄運行phpize,而是進入php的源文件中要增加的擴展模塊的文件目錄---也就是/root/source/php-5.3.10/ext/pdo_mysql目錄執行phpize。如果不是這樣操作的話就會提示下面的錯誤:
Cannot
find
config.m4.
Make
sure
that
you
run
'/usr/local/php/bin/phpize'
in
the
top
level
source
directory
of
the
mole
關於上面的這個錯誤,我不得不鄙視下網上有些自以為是的傢伙,自認為對所有的安裝操作很懂,報上面的錯誤的時候,去修改源代碼,搞的亂七八糟,誤人子弟。根本不按php官方的文檔操作。
目錄/root/source/php-5.3.10/ext/pdo_mysql
,在運行phpize命令前並沒有configure文件,只有config.m4文件。運行phpize就生成了一個可執行的configure文件。此時就可以按照下的方法編譯了:
./configure
--with-php-config=/usr/bin/php-config
(還可以加一些其他的參數,可通過./configure
--help查看)
make
make
install
編譯完成後會提示擴展模塊生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目錄。
修改php.ini文件
vi
/usr/local/php/etc/php.ini
在其文件結尾加入下面的內容:
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"
extension=pdo_mysql.so
安裝完成後,重啟php-fpm和web伺服器。(因為我用的是php-fpm和tengine,如果用的是apache則也重啟相應的程序,重新載入就行了)
F. 如何安裝新的PHP擴展模塊
php安裝好後,可能在初次安裝時,會有些模塊會有遺漏,但是我們又不想重新編譯php,因為耗時是比較長的。我們可不可以在不重新編譯安裝php的情況下,來為php單獨添加某一個模塊呢?查找資料,發現還是有方法的,重點就是phpize了,於是寫了這篇文章.
下面我們就以單獨為php載入mysqli模塊為例,演示如何動態為php添加模塊。
1、找到php原碼安裝文件
2、cd /home/php/ext/myslqi
3、運行 /usr/local/php/bin/phpize
4、/configure –with-php-config=/usr/local/php/bin/php-config
5、make && make install
6、安裝完成之後會在系統/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/這個目錄下面生成mysqli.so的庫文件
7、編輯php.ini文件,指定php到哪人目錄讀取模塊
vi /usr/local/php/etc/php.ini
extension_dir=」/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″
extension=mysqli.so
8、重啟php服務 /usr/local/php/sbin/php-fpm restart
7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在
如果步驟正確,你的人口也不差的情況下,應該這樣php的動態模塊載入就完成了。