安裝php(fastcgi模式)的時候,常常有這樣一句命令:/usr/local/webserver/php/bin/phpize
一、phpize是幹嘛的?
phpize是什麼東西呢?php官方的說明:
http://php.net/manual/en/install.pecl.phpize.php
phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
比如你想在原來編譯好的php中加入memcached或者ImageMagick等擴展模塊,可以使用phpize,通過以下幾步工作。
二、如何使用phpize?
當php編譯完成後,php的bin目錄下會有phpize這個腳本文件。在編譯你要添加的擴展模塊之前,執行以下phpize就可以了;
比如現在想在php中加入memcache擴展模塊:我們要做的只是如下幾步
————————————————————————
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
————————————————————————
注意./configure 後面可以指定的是php-config文件的路徑
這樣編譯就完成了,還需要做的是在php.ini文件中加入extension值
extension = “memcache.so”
phpize 是屬於 php-devel 中的東西,主要是設定 php 外掛模塊的一些設定
例如你的php不支持mysql, mbstring等
實例應用:
環境php5.2.6, 不支持mysql擴展
假如php的源碼包在/usr/local/src/php-5.2.6
php安裝目錄是/usr/local/php
# cd /usr/local/src/php-5.2.6
# cd ./ext/mysql
# /usr/local/php/bin/phpize
# ./configure –with-php-config=/usr/local/php/bin/php-config
# make
# make install
這個時候你會看到mysql.so被拷貝到某個目錄, 把mysql.so拷貝到你的extension_dir指向的路徑, 在php.ini裏增加extension=mysql.so
重啓web服務器, 看一下phpinfo, 應該支持mysql了, 完畢!
注意: 在執行/usr/local/php/bin/phpize的時候可能會提示某些錯誤, 例如:Cannot find autoconf, 那就根據錯誤提示把相關的軟件安裝, RHEL系列使用yum -y install autoconf就可以了
其他錯誤, 請留言給我!
所以安裝 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 這一行之後才能使用此擴展庫。