phpize、php-config(通常隨 php-devel 或 php5-dev 包提供)。libcurl-devel / libcurl4-openssl-dev。.c/.h 文件)。cd /usr/local/src/php-5.3.10/ext/curl
/usr/local/php/bin/phpize
輸出應包含 Configuring for PHP Api Version: 20090626 等信息。
./configure --with-php-config=/usr/local/php/bin/php-config
關鍵:必須指定 --with-php-config 指向正確的 php-config,否則會報 Cannot find php-config 錯誤。
make && make install
成功後會提示安裝路徑,如:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
編輯 php.ini,添加:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl.so
或僅寫 extension=curl.so(前提是 extension_dir 指向該目錄)。
service httpd restart
# 或
systemctl restart php-fpm
執行 php -m | grep curl 或 php -i | grep curl 確認載入。
| 問題 | 解決 |
|---|---|
phpize: command not found | 安裝 php-devel (CentOS/RHEL) 或 php5-dev (Debian/Ubuntu)。 |
configure: error: libcurl not found | 安裝 libcurl-devel / libcurl4-openssl-dev;或指定路徑 --with-curl=/usr/local/curl。 |
編譯通過但運行報 undefined symbol | PHP 版本與擴展 API 版本不匹配(ZTS/非 ZTS、Debug/非 Debug)。確保使用同一 PHP 環境的 phpize/php-config。 |
| Windows 環境 | 無需編譯,直接下載預編譯 php_curl.dll 放入 ext 目錄,啟用於 php.ini。 |
cd php源碼目錄/ext/目標擴展
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config [擴展專屬選項]
make && make install
# 修改 php.ini 添加 extension=xxx.so
# 重啟服務
./configure --help | grep -A2 -B2 'with-擴展名'