lnmp下用phpize動態安裝PHP模塊/擴展(不需要重裝PHP)


安裝前

安裝前建議先執行 /usr/local/php/bin/php -m (此命令顯示目前已經安裝好的PHP模塊)看一下,要安裝的模塊是否已安裝。然后下載當前PHP版本的源碼並解壓。

本文以imap和exif模塊為例,進入php源碼目錄下ext,里面會有大部分模塊的源碼。

一、安裝imap模塊

1、安裝imap模塊前需要先安裝imap所需的庫:

CentOS :yum install libc-client-devel

Debian:apt-get install libc-client-dev

2、首先進入php安裝目錄的ext目錄

比如php的源碼目錄為:/root/lnmp0.4-full/php-5.2.10/

則執行:cd /root/lnmp0.4-full/php-5.2.10/ext/

我們要安裝imap模塊,執行cd imap/

再執行 /usr/local/php/bin/phpize 會返回如下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

再執行以下命令:

[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl

[root@vpser imap]# make && make install

執行完返回:

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

表示已經成功,再修改/usr/local/php/etc/php.ini

查找:extension_dir 再下面一行添加上extension = "imap.so"

保存,執行/etc/init.d/php-fpm restart 重啟。

在瀏覽器里面輸入http://ip/p.php,打開探針,安裝IMAP模塊前:

安裝IMAP模塊后:

二、安裝exif模塊

安裝exif不需要另外安裝庫,所以省略掉了安裝庫的步驟。

比如php的安裝目錄為:/root/lnmp0.4-full/php-5.2.10/

則執行:cd /root/lnmp0.4-full/php-5.2.10/ext/

我們要安裝exif模塊,執行cd exif/

再執行 /usr/local/php/bin/phpize 會返回如下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

再執行以下命令:

[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config

[root@vpser imap]# make && make install

執行完返回:

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

表示已經成功,再修改/usr/local/php/etc/php.ini

查找:extension = 再最后一個extension= 后面添加上extension = "exif.so"

保存,執行/etc/init.d/php-fpm restart 重啟。

在/home/wwwroot/下面創建一個exif.php的文件,內容如下:

<?php

$exif = read_exif_data ('IMG_0001.JPG');
while(list($k,$v)=each($exif)) {
echo "$k: $v<br>\n";
}

?>

其中IMG_0001.JPG為照片文件。

未安裝exif模塊前:

安裝exif模塊后:

可以讀出照片的exif信息。

安裝其他模塊也基本上都是這兩種方式,當./configure --with-php-config=/usr/local/php/bin/php-config 執行這個的時候是會檢查系統上庫是否安裝上,如果沒有安裝上就會報錯,按錯誤提示安裝相關的庫就行。

轉載:http://www.vpser.net/manage/lnmp-php-install-ext.html

使用php的常見問題是:編譯php時忘記添加某擴展,后來想添加擴展,但是因為安裝php后又裝了一些東西如PEAR等,不想刪除目錄重裝,別說,php還真有這樣的功能。

  我沒有在手冊中看到。

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

  幸好有phpize,

  方法是,要有與現有php完全相同的php壓縮包。我用的是php-5.2.6.tar.gz。

  展開后進入里面的ext/bcmath目錄

  然后執行/usr/local/php/bin/phpize,這是一個可執行的文本文件,要確保它在系統中

  會發現當前目錄下多了一些configure文件,

  如果沒報錯,則

  Php代碼

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

  注意要先確保/usr/local/php/bin/php-config存在。

  如果你的php安裝路徑不是默認的,要改。

  如果沒有報錯,則make,再make install ,然后它告訴你一個目錄

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

  修改php.ini,在最后添加一句extension=bcmath.so

  重啟apache.

轉載:http://www.cnblogs.com/mrcoke/articles/2351878.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM