當 PHP 預設安裝未包含所需擴展(如 mbstring、cURL)時,可透過原始碼手動編譯安裝。本文以 PHP 5.2.13 為例,詳細說明編譯流程與常見問題排解。
/usr/local/src/php-5.2.13/usr/local/phpautoconf、gcc、gcc-c++# 安裝編譯依賴 (CentOS/RHEL)
yum -y install autoconf gcc gcc-c++
# 進入 mbstring 擴展目錄
cd /usr/local/src/php-5.2.13/ext/mbstring/
# 執行 phpize 產生配置腳本
/usr/local/php/bin/phpize
# 配置編譯參數
./configure --with-php-config=/usr/local/php/bin/php-config
# 編譯與安裝
make && make install
編譯完成後,於 php.ini 中加入 extension=mbstring.so,重啟 Web 伺服器即可生效。
wget https://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -zxvf curl-7.19.6.tar.gz
cd curl-7.19.6
./configure --prefix=/usr/local/curl
make && make install
cd /usr/local/src/php-5.2.13/ext/curl
/usr/local/php5/bin/phpize
./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php5/bin/php-config
make && make install
若出現 Cannot find autoconf 錯誤,請先安裝 autoconf(Ubuntu 用 apt-get install autoconf)。
extension_dir = "/usr/local/php5/extensions/"
extension = curl.so
/usr/local/php5/bin/php -v 檢查是否報錯,並重啟 Apache。php-config 路徑正確,避免配置失敗。php.ini 後必須重啟 Web 服務才能生效。