1.進入php源程序目錄中的ext目錄中,這里存放着各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:
cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.“,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,並編譯生成模塊:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
這樣,curl.so就被復制到PHP對應目錄(如:/usr/local/php/lib/php/extensions/no-debug-zts-20131226)
2.修改配置
在php.ini里,設置擴展目錄:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226"
並添加擴展模塊引用:
extension = curl.so
3.檢查並重啟Apache
/usr/local/php/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,這里會報錯,可以根據錯誤信息去排查
補充:
1.需要安裝自己手動編譯的擴展包時在ext目錄中如下指定
以下為在/ext/gd文件下安裝gd庫是順便使其支持freetype
.
/configure
--with-freetype-dir
=
/usr/local/freetype
--with-php-config=
/usr/local/php/bin/php-config
2.在安裝pdo_mysql擴展時
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make后出現如下錯誤:
意思是在php_pdo_mysql_int.h的第27行包含文件時沒有找到他他所需的mysqlnd.h 但實際上在ext/mysqlnd中能找到mysqlnd.h因此大致是他的包含路徑有問題 ,編輯php_pdo_mysql_int.h 定位到27行改成如下(改成能直接訪問到相應頭文件的路徑)