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

安裝前

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

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

1、安裝imap模塊

一、安裝imap模塊前須要先安裝imap所需的庫:linux

CentOS :yum install libc-client-develapache

Debian:apt-get install libc-client-devwindows

二、首先進入php安裝目錄的ext目錄瀏覽器

好比php的源碼目錄爲:/root/lnmp0.4-full/php-5.2.10/函數

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

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

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

再執行如下命令:

[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模塊後:

2、安裝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

相關文章
相關標籤/搜索