linux下用phpize給PHP動態添加擴展

phpize簡介

phpize 是屬於 php-devel 中的東西,主要是設定 php 外掛模塊的一些設定

因此安裝 php-devel 相關套件就會有 phpize 可使用 (檔案預設存放於 /usr/bin/phpize )

phpize 命令是用來準備 PHP 外掛模塊的編譯環境的。下面例子中,外掛模塊的源程序位於 extname 目錄中

$ cd extname
$ phpize
$ ./configure ( 注一)
$ make
$ make install

成功的安裝將創建 extname.so 並放置於 PHP 的外掛模塊目錄中 (預設存放於 /usr/lib/php/modules/ 內) 。

須要調整 php.ini,加入 extension=extname.so 這一行以後才能使用此外掛模塊。

注一

如在執行  ./configure 時出現  not find –with-php-config 時,

可重下如下指令,因 –with-php-config 預設在 /usr/bin/php-config 可找到

./configure –with-php-config=/usr/bin/php-config

須要調整 php.ini,加入 extension=extname.so 這一行以後才能使用此擴展庫。 php


phpize給PHP動態添加擴展 html

使用php的常見問題是編譯php時忘記添加某擴展,後來想添加擴展,可是由於安裝php後又裝了一些東西如PEAR等,不想刪除目錄重裝,這裏就須要用到phpize了。 linux

如我想增長bcmath擴展的支持,這是一個支持大整數計算的擴展。windows自帶並且內置,linux「本類函數僅在 PHP 編譯時配置了 --enable-bcmath 時可用」(引號內是手冊中的話) shell

注意,有些擴展須要和php的版本保持一致才能夠的. windows

解壓bcmath包,進入裏面的ext/bcmath目錄,而後執行/usr/local/php/bin/phpize,phpize在php安裝完之後會有這個命令的, 會發現當前目錄下多了一些configure文件,而後再執行./configure命令便可. socket

#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config

注意要先確保/usr/local/php/bin/php-config存在。 (若是你的php安裝路徑不是默認的,請修改成php安裝的路徑) 函數

若是沒有報錯,則make,再make install ,而後它告訴你一個目錄. 工具

#make
#make install

你把該目錄下的bcmath.so拷貝到你php.ini中的extension_dir指向的目錄中, spa

修改php.ini,在最後添加一句 .net

extension=bcmath.so

重啓WEB服務,再執行phpinfo(),驚喜發現:

到此bcmath擴展已經安裝成功!


另附:

Linux下利用phpize安裝php擴展

php有不少擴展功能,咱們在初次安裝的時候並無安裝某些擴展,可能在使用的過程當中,又須要用到這些擴展。php提供了一個phpize工具供咱們安裝須要的擴展。

下面我經過安裝socket擴展來介紹phpize的使用:

1.找到本身的php安裝目錄,例如個人目錄是home/vsrank/php,在該目錄下,找到bin/phpize。若是沒有這個工具,則說明沒有安裝該工具,那麼須要安裝php.dev,通常都會有這個工具。

2.要擴展的話,就須要有一個和當前已安裝的php的版本同樣的php的源包,當前php版本能夠用過phpinfo()查看。就是初次安裝後查看安裝是否成功的那個test.php。

3.打開源包目錄,進入到ext目錄,例如我就進入到:/home/vsrank/php-5.3.10/ext下,ext下有各個php帶有的擴展模塊,進入到ext/sockets中。

4.cd到ext/sockets後,執行下面的命令:
/home/vsrank/php/bin/phpize
即執行phpize工具,執行後,能夠看到目錄下生成了對應的configure文件:

5.如今就能夠經過configure來配置,執行下面的命令:
./configure --enable-sockets --with-php-config=/home/vsrank/php/bin/php-config  
 
make  
 
make install
執行以後,能夠看到下面的輸出:
Installing shared extensions:     /home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/  
Installing header files:          /home/vsrank/php/include/php/
第一個就是擴展模塊的生成目錄,能夠在對應目錄下看到對應的sockets.so文件。

6.更改php.ini,增長下面的語句:
extension="/home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/sockets.so"
能夠看到和上面的輸出是一致的。 7.重啓Apache,接下來就能夠看看本身的socket是否是配置好了。。
相關文章
相關標籤/搜索