Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 系統安裝 PHP cURL 擴展完整教學:兩種編譯方式詳解

編輯:Linux 教學

PHP cURL 擴展提供強大的 URL 傳輸功能,支援 HTTP/HTTPS/FTP/FTPS/SCP/SFTP/LDAP 等協議,是 fsockopen 等原生函式的優秀替代。本文提供兩種安裝方式:獨立編譯 cURL 再編譯 PHP、PHP 源碼目錄下編譯共享模組,含常見錯誤排查與 php.ini 設定。

方式一:完整重編譯 PHP (適合初次安裝或大版本升級)

  1. 安裝 cURL 庫:
    wget https://curl.haxx.se/download/curl-7.18.2.tar.gz
    tar -zxvf curl-7.18.2.tar.gz
    cd curl-7.18.2
    ./configure --prefix=/usr/local/curl
    make && make install
  2. 編譯 PHP 時加入參數:
    ./configure --with-curl=/usr/local/curl [其他參數...]
    make && make install

方式二:僅編譯 cURL 模組 (適合已安裝 PHP,需新增擴展)

  1. 確保 cURL 庫已安裝 (同上)
  2. 進入 PHP 源碼目錄 ext/curl:
    cd /usr/local/src/php-5.2.1/ext/curl
    phpize
    ./configure --with-curl=/usr/local/curl

    常見錯誤:configure: error: Cannot find php-config
    解決:指定 php-config 路徑:

    ./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php/bin/php-config
  3. 編譯並安裝模組:
    make
    cp modules/curl.so /usr/local/php/lib/php/extensions/no-debug-zts-20060613/

    目標目錄請依實際 php.ini 中 extension_dir 設定。

  4. 修改 php.ini 載入擴展:
    extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/curl.so"
  5. 重啟 Web 伺服器生效:
    apachectl -k restart   # Apache
    # 或 systemctl restart php-fpm  # PHP-FPM

驗證安裝

php -m | grep curl
# 或建立 phpinfo.php 檢視 cURL 區塊
# 輸出應包含:cURL support => enabled, cURL Information => 7.18.2

常見問題彙整

cURL 進階應用範例

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.example.com/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 測試用,生產請驗證憑證
$response = curl_exec($ch);
if (curl_errno($ch)) {
    echo "Error: " . curl_error($ch);
} else {
    echo $response;
}
curl_close($ch);
?>
Copyright © Windows教程網 All Rights Reserved
問題原因與解決
phpize 找不到安裝 php-devel 或 php5-dev 套件
configure 找不到 curl/curl.hcURL 開發套件未裝:yum install libcurl-devel 或確認 --with-curl 路徑正確
模組載入失敗 (undefined symbol)PHP 版本與編譯時不符 (如 ZTS/非 ZTS、API 版本)。請確保 phpize、php-config 來自目標 PHP 安裝
HTTPS 請求失敗cURL 編譯未支援 OpenSSL:重編 cURL 加入 --with-ssl 或 --with-openssl