2024 年日本 PHP 研討會

安裝

要使用 PHP 的 cURL 支援,您必須使用 --with-curl[=DIR] 編譯 PHP,其中 DIR 是包含 libinclude 目錄的目錄位置。在 include 目錄中應該有一個名為 curl 的資料夾,其中應包含 easy.hcurl.h 檔案。在 lib 目錄中應該有一個名為 libcurl.a 的檔案。

注意Win32 使用者注意事項
要在 Windows 環境中啟用此模組,libeay32.dllssleay32.dll,或者 OpenSSL 1.1 版之後的 libcrypto-*.dlllibssl-*.dll 必須存在於您的 PATH 環境變數中。同時 libssh2.dll 也必須存在於您的 PATH 環境變數中。 您不需要來自 cURL 網站的 libcurl.dll

新增註解

使用者貢獻的註解 14 則註解

comments at adstation-systems dot com
16 年前
您可能會像我一樣,對在 PHP 中安裝 cURL 的說明感到困惑。說明「要使用 PHP 的 cURL 支援,您還必須編譯 PHP --with-curl[=DIR]...」對我來說很模糊,因為我在安裝 PHP 時並沒有編譯它。我只是按照 PHP 手冊中非常清楚的描述,將所有必要的檔案複製到正確的資料夾中。

我使用的是 Windows XP、Apache 和 PHP 5.1.6。在這種情況下,也可能適用於 PHP 5.0 和更高版本,您只需要移除指令 extension=php_curl.dll 前面的分號「;」。您還應該檢查 libeay32.dll 和 ssleay32.dll 是否與其他 DLL 檔案一起放在您的 PHP 目錄中。這個目錄應該已經在您的 PATH 環境變數中,因此將它們添加到 PATH 環境變數的說明並不是關鍵的。

然後您可以執行 phpinfo(),您應該會在列表中看到一個 cURL 的標題。

簡而言之,我的 cURL 安裝過程包括移除 php.ini 中 ;extension=php_curl.dll 行前面的分號,儲存 php.ini 並重新啟動 Apache。如果您使用的是 PHP 5.0 和更高版本,並且難以理解 php.net 上 cURL 安裝頁面上的說明,您可以嘗試這樣做。

您也可能會發現 http://curl.phptrack.com/forum/viewtopic.php?t=52 的資訊很有用。
Developtus.com
9 年前
在 Windows 7 x64 上升級到 PHP 5.6.9 後,cURL 不再被辨識。伺服器啟動套件沒有錯誤,只是無法使用,並且沒有顯示在 phpinfo.php 中。deplister.exe 正常。
我透過從 PHP 資料夾(在我的例子中是 D:\xampp\php)複製以下檔案列表來修復此問題:
libeay32.dll
libssh2.dll
ssleay32.dll
到 c:\xampp\apache\bin(或您的 apache\bin 路徑),重新啟動 Apache 後即可正常運作,Apache 的函式庫過時了。
Joseph Marlin
13 年前
Ubuntu 11.04

我已經安裝了 Apache 和 PHP5,但僅僅新增 php5-curl 和 curl 並*沒有*用。我還必須安裝 libcurl3 和 libcurl3-dev。完整的指令是:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

您會知道它是否有效,因為 phpinfo() 會顯示一個新的 cURL 資訊區段。
epos_jk
7 年前
您不需要複製檔案即可在 Apache 2.4 中使用 PHP cURL - 只要在您的 Apache 設定檔中使用 LoadFile 指令即可。
LoadFile "C:/php7/libssh2.dll"
(這就是我讓它運作所需的全部步驟)
epos_jk
7 年前
從 1.1.0 版開始,OpenSSL 已更改其函式庫名稱!
libeay32.dll 現在是 libcrypto-*.dll(例如,64 位元 Windows 上 OpenSSL 1.1.x 的 libcrypto-1_1-x64.dll)
ssleay32.dll 現在是 libssl-*.dll(例如,64 位元 Windows 上 OpenSSL 1.1.x 的 libssl-1_1-x64.dll)
TristanV
10 年前
如果您在 Windows 上運行 Wampserver 或類似的預先配置好的 PHP,如果您已完成所有建議的操作(路徑正確,dll 位於 System32 或 Wow64 資料夾中,在 php.ini 中取消註釋 php_curl 擴充功能,重新啟動電腦並重新啟動服務),但您仍然收到訊息說未安裝 curl
- 也許您正在運行命令列腳本(而不是 Web 應用程式中的 curl 指令)。如果是,請記住有兩個不同的 php.ini 設定檔:一個用於 php-cli 命令(在命令列運行 php),另一個用於 php 指令(從 www 資料夾中的頁面運行)。
Wampserver 的選單項「php.ini」只會開啟網路伺服器的 php.ini,而不是 php-cli 的 php.ini。
因此,最好檢查一下您的 php-cli 的 php.ini 設定檔!(您可以在 php.exe 的安裝資料夾中找到它)
您需要在這個 php.ini 檔案中取消註釋 php_curl 擴充功能,才能讓命令列使用 curl。
順便也取消註釋 php_openssl 擴充功能(經常與 curl 一起使用)。
我希望這個已修復的問題能幫助其他人 :)
jorijnsmit at gmail dot com
10 年前
並非總是需要(重新)編譯 PHP。對我來說,安裝 php5-curl 並重新啟動 Apache 就足夠了

$ sudo apt-get install php5-curl
$ sudo /etc/init.d/apache2 restart
regs at voidship dot net
16 年前
如果您像我一樣遲鈍,請在 Ubuntu 系統(可能 Debian 也是)上省去麻煩,然後...

$ sudo apt-get install php5-curl

然後會覺得自己很笨,但不像我那麼笨。
anonymous
6 年前
在 Windows 7 x64 上將 Apache 2.4 32 位元版本升級到 php 7.1.6

這個 curl 實作有效

1. C:/(php 資料夾的路徑)/php.ini
啟用 extension=php_curl.dll

直接在 php7 資料夾中找到 libeay32.dll、ssleay32.dll、libssh2.dll

2. 將此添加到 Apache/conf/httpd.conf
# 載入 curl 和 open ssl 函式庫
LoadFile "C:/(php 資料夾的路徑)/libeay32.dll"
LoadFile "C:/(php 資料夾的路徑)/ssleay32.dll"
LoadFile "C:/(php 資料夾的路徑)/libssh2.dll"
Greg
4 年前
對於那些可能有與 curl 相關的 WordPress 問題的人來說,我的答案是在設定中沒有指定 curl.cainfo。這導致一個外掛程式出現了一些不正常的錯誤,我終於能夠追蹤到它。

curl.cainfo = "C:\php\extras\ssl\cacert.pem"

您需要一份 cacert.pem(PHP 不附帶,且需要經常更新,可以從以下官方永久連結找到)
https://curl.haxx.se/ca/cacert.pem

他們使用 Mozilla 憑證儲存庫的修改版本,使其能與 libcurl 搭配使用。

我不是專家,這只是我解決錯誤的方法。

(cacert.pem 列出了官方的根憑證提供者,讓您的電腦知道哪些是可以安全驗證的對象,這是我的通俗理解。我確定這在技術上並不完全準確,但對我們這些外行人來說已經夠用了。)
NV
2 年前
如果您嘗試在 Windows 上安裝 (我使用的是 Windows 10、Apache 2.4、PHP 8.1),但 curl 模組無法載入,且 PHP 顯示/記錄以下錯誤,但 <phpPath>\ext\php_curl.dll 確實存在

[2022年4月14日 23:41:36 UTC] PHP 警告: PHP 啟動: 無法載入動態程式庫 'curl' (已嘗試: <phpPath>\ext\curl (找不到指定的模組), <phpPath>\ext\php_curl.dll (找不到指定的模組)),檔案位置:未知,行號:0

問題不在於找不到模組,而是找不到它的依存項目 (例如 <phpPath>\libcrypto-1.1.dll 和 libssl-1.1.dll 或類似檔案)。如同其他評論所述,您需要將 <phpPath> 新增到系統變數的 PATH 變數中。

但是,如果您以服務的形式啟動 Apache,預設情況下該服務會在 Local System 帳戶下執行。在這種情況下,****您需要重新開機**** 才能讓 PATH 變數的變更套用至 Local System 帳戶 (請參閱以下參考資料
https://stackoverflow.com/questions/32068893/how-to-change-path-value-for-local-system-account-in-ms-windows)
wixelbomb at yahoo dot com
14 年前
關於 Windows XP 安裝的補充說明...

對於將 Windows/system32 目錄作為 php_curl 相關 .dll 檔案儲存庫的使用者來說,其他人提供的說明仍然缺少一個小步驟。

在您按照其他地方的建議操作後,請前往 php 安裝目錄的 ext 資料夾,並將 php_curl.dll 複製到 Windows/system32 資料夾。

所以...
1) 移除 php.ini 中 extension=php_curl.dll 前面的 ';'
2) 確保 ssleay32.dll 和 libeay32.dll 位於 Windows/system32 中。
3) 也將 php_curl.dll 複製到 Windows\System32 中。

祝好

bearstate
karliskavacis at gmail dot com
8 年前
在我的情況下,在執行 Windows 10 和 Apache Httpd 2.4 時,我必須將我的 PHP7 根目錄新增到 Windows PATH 中,才能解決無法載入幾個 PHP 擴充功能的問題。
1004707812 at qq dot com
6 年前
Win10 64 位元、php7 x64、apache x64
在 php.ini 中清楚地設定 " extension_dir = "X:/WAMP/php/ext" " 非常重要。
請記住,最近一些 dll 的名稱已更改,尤其是在 x64 環境中。
To Top