首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 啟用 cURL 擴充完整指南:Windows/Linux 環境配置與驗證步驟

     編輯:PHP 相關知識

呼叫 curl_init() 出現 Call to undefined function 錯誤,代表 PHP 未載入 cURL 擴充。本文提供 Windows (XAMPP/WAMP/IIS) 與 Linux (apt/yum/docker) 環境的完整啟用流程、驗證腳本與常見坑點排查。

快速驗證腳本

<?php
// test_curl.php
if (!function_exists('curl_init')) {
    die('❌ cURL 擴充未載入');
}
$ch = curl_init('https://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$html = curl_exec($ch);
if ($html === false) {
    die('❌ 請求失敗:' . curl_error($ch));
}
curl_close($ch);
echo '✅ cURL 正常運作,取得 ' . strlen($html) . ' 字元';
?>

Windows 環境啟用步驟

方法一:XAMPP / 手動 PHP 安裝

  1. 編輯 php.ini(位置執行 php --ini 或 phpinfo() 確認):
    ; 找到並取消註解
    extension=curl
  2. 複製 DLL 到系統路徑(關鍵步驟):
    • php_curl.dll(PHP ext 目錄)
    • libeay32.dll、ssleay32.dll(PHP 根目錄)
    • 複製至 C:\Windows\System32\ 或 Apache bin\ 目錄
  3. 重啟 Apache / PHP-FPM 服務。
  4. 執行驗證腳本確認。

方法二:WAMP / PHP Manager for IIS

  • WAMP:左鍵圖示 → PHP → PHP Extensions → 勾選 php_curl → 自動重啟。
  • IIS + PHP Manager:模組管理 → 啟用 curl。

Linux 環境啟用步驟

Ubuntu / Debian (apt)

# PHP 8.x
sudo apt update && sudo apt install php8.3-curl
# PHP 7.4
sudo apt install php7.4-curl
# 重啟服務
sudo systemctl restart php8.3-fpm  # 或 apache2 / nginx

CentOS / RHEL / Rocky (yum/dnf)

# EPEL 源通常已含
sudo dnf install php-curl  # 或 yum
sudo systemctl restart php-fpm

Docker 環境

# Dockerfile
FROM php:8.3-fpm
RUN docker-php-ext-install curl
# 或安裝依賴後編譯
RUN apt-get update && apt-get install -y libcurl4-openssl-dev \
    && docker-php-ext-install curl

常見錯誤與排查

錯誤現象根因解決方案
Windows: Unable to load dynamic library 'curl'DLL 相依遺失確認 libeay32.dll/ssleay32.dll 存在於 PATH 路徑
Linux: undefined symbol: curl_global_initlibcurl 版本不匹配重新編譯 docker-php-ext-install curl 或重裝 php-curl 套件
啟用後仍報未定義編輯錯誤的 php.ini執行 php --ini 確認 Loaded Configuration File
CLI 正常但 FPM 失效不同 SAPI 使用不同 ini分別檢查 /etc/php/8.3/cli/php.ini 與 /etc/php/8.3/fpm/php.ini

進階驗證:檢查 cURL 資訊

<?php
if (function_exists('curl_version')) {
    $info = curl_version();
    echo '版本: ' . $info['version'] . "\n";
    echo 'SSL: ' . ($info['features'] & CURL_VERSION_SSL ? '支援' : '不支援') . "\n";
    echo '支援協定: ' . implode(', ', $info['protocols']) . "\n";
    echo 'libz: ' . ($info['features'] & CURL_VERSION_LIBZ ? '是' : '否') . "\n";
}
?>

生產環境安全建議

  • 保持 CURLOPT_SSL_VERIFYPEER => true,配合 CURLOPT_CAINFO 指定最新 CA 憑證包(cacert.pem)。
  • 定期更新系統 ca-certificates 套件。
  • 禁用不必要的協定(如 CURLOPT_PROTOCOLS 限制 HTTPS)。
  • 監控 cURL 錯誤日誌,設定告警機制。

完成上述步驟後,PHP 即可完整支援 cURL 進行 HTTP/HTTPS 請求、API 串接、檔案上傳下載等核心網路操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved