執行 PHP 程式呼叫 curl_exec() 時出現錯誤:「Call to undefined function curl_exec()」或「伺服器不支援 curl」,代表 PHP 未載入 cURL 擴充功能。
libeay32.dllssleay32.dllphp5ts.dll(PHP 7+ 為 php7ts.dll/php8ts.dll)php_curl.dllphp.ini:
extension_dir 指向正確的 ext 目錄。;extension=php_curl.dll,移除前面分號(;)。# 1. 安裝 cURL 庫
wget https://curl.se/download/curl-7.88.1.tar.gz
tar -zxf curl-7.88.1.tar.gz
cd curl-7.88.1
./configure --prefix=/usr/local/curl
make && make install
# 2. 重新編譯 PHP
cd php-source-directory
./configure --with-curl=/usr/local/curl ...(其他原有參數)
make && make install
cd php-source-directory/ext/curl
phpize
./configure --with-curl=/usr/local/curl
make
# 產生 modules/curl.so
cp modules/curl.so /usr/lib/php/extensions/ # 依實際 extension_dir 調整
echo "extension=curl.so" >> /etc/php.ini
# 重啟 php-fpm / Apache
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_exec($ch);
curl_close($ch);
?>
輸出 Google 首頁 HTML 即代表成功。
System32 可能因權限失敗,建議放在 Apache 的 bin 目錄或 PHP 根目錄,並確認 PATH 環境變數包含該路徑。phpize 需安裝 php-devel/php-dev 套件。Windows 只需調整 php.ini 複製 DLL;Linux 建議透過套件管理器 yum install php-curl 或 apt install php-curl 一鍵搞定,除非特殊版本需求才手動編譯。