2008-10-08 88 views
51

我在這裏照着所有的說明:http://www.tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows/如何在Windows上安裝cURL?

安裝&配置阿帕奇 獲得PHP5包 並獲得捲曲包。

我運行Apache並運行PHP腳本。沒問題。 但是當我用curl運行php腳本時,它失敗了。

它返回:**Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**

在其第5行是一個名爲到curl_init()

I輸出PHP的-i看向延伸右路徑是否被調用。它設置正確:

extension_dir => C:\PHP\ext => C:\PHP\ext 
cURL support => enabled 
cURL Information => libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3 

我甚至試圖運行curl_version()但儘管如此,同一種錯誤的出現。
它看起來像PHP無法找到CURL擴展名,但php.ini(也是php -i)顯示它已設置。

有什麼想法嗎? :)

P.S> System I m running on: 
Windows XP 
Apache 2.2 
PHP 5.2.6 
CURL Win32 Generic Binaries: Win32 2000/XP metalink 7.19.0 binary SSL enabled  Daniel Stenberg  249 KB 

我沒有得到這樣的:

Win32 2000/XP 7.19.0 libcurl  SSL enabled  Günter Knauf 1.55 MB 
Should I get this one instead? 

我之所以需要使用捲曲,這是從我的項目的要求。所以,我只能堅持這一點。 XAMPP ...它在Windows中如何工作?有什麼網站可以推薦?謝謝。

我已經嘗試了很多關於安裝cURL和檢查所有內容的事情,但仍然在圍繞着問題盤旋,不知道發生了什麼。

Apache服務器使用正確的PHP.ini。和PHP.ini有正確的extension_dir和擴展名= php_curl.dll我不知道爲什麼它不起作用。即使我按照每一步來設置它。 :(

+4

假設人還是在2012年這個問題(像我一樣),我會發布一些更新。 Apache(當前版本2.2.21)現在發佈了2個不同的版本,這使得捲曲更容易。你需要的apache版本是支持SSL的版本。安裝它,然後像你習慣的那樣安裝php。在php.ini中,取消該行的註釋; extension = php_curl.dll,如果你還沒有,那麼你就準備好了。無需下載其他任何東西。 – 2012-01-29 06:14:18

+0

讀者可能會發現這適用於Windows x64。 http://stackoverflow.com/questions/25044010/running-curl-on-64-bit-windows – MacGyver 2014-12-10 17:28:52

回答

20

你可能錯誤地認爲你需要編輯的是PHP.ini首先,將PHPinfo();添加到info.php中,然後從你的瀏覽器。

記下您在變量列表中看到的PHP ini目錄路徑! 您可能會注意到它與您的PHP-CLI ini文件不同。

啓用擴展

你在http://www.apachefriends.org/en/xampp.html

http://www.apachefriends.org/en/xampp-windows.html :-)

+1

我有這個問題與XAMPP安裝包。目錄樹結構至少可以說是令人困惑的。你提供的php文件夾很少是正確的。 phpinfo()是一個神話般的故障排除工具。 + 1爲這個答案, - 1誰設計xampp的樹結構(我猜這是在這種情況下的罪魁禍首)。 – 2009-07-20 08:22:51

+0

v需要在apache中配置任何東西 – Bharanikumar 2015-10-15 14:58:49

13

我使用的XAMPP,其中有幾個的php.ini文件

你可以找到在php.ini文件中的一行: ;extension=php_curl.dll

請在開始刪除;你可能需要重新啓動apache服務器

+0

簡單的修復,做工精細 – AjayR 2011-05-03 00:41:12

1

您可能會發現XAMPP完成的Windows解釋XMAPP。

是的,安裝後有三個php.ini文件,一個是php4,一個是php5,一個是apache。請相應修改它們。

0

我解決了這個問題。

在我的Apache,我必須註明:

的PHPIniDir 「C:// PHP」 將AddType應用/ X的httpd - PHP .PHP

和php.ini文件,而不是使用php.ini_recommend,使用php.ini_dist來配置我的php.ini。

然後確保php引擎已打開。 然後它現在工作。謝謝大家。

2

我最近在Windows Vista的PHP5上安裝了Curl。我做了而不是當我最初安裝PHP5時啓用CURL庫,所以Curl在phpinfo()或php.ini中沒有顯示出來。

我通過重新運行PHP5安裝程序(我的php-5.2.8-win32-installer.msi)並選擇「更改」來安裝CURL。然後,我添加了CURL組件。重新啓動Apache,CURL應該可以工作。 CURL將顯示在phpinfo()中。另外,下面是一個示例腳本,您可以運行它來驗證它是否有效。這顯示從谷歌RSS提要:

<?php 
    error_reporting(E_ALL); 
    ini_set('display_errors', '1'); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 
    'http://news.google.com/news?hl=en&topic=t&output=rss'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $contents = curl_exec ($ch); 
    echo $contents; 
    curl_close ($ch); 
    ?> 
9

我也有這個問題。在所有這些步驟正確地做出了一些固定的誤解之後(沒有extensions_dir但是extension_dir,並且沒有sessions.save_path但是session.save_path)沒有任何效果。

最後我發現這個便條在php.net:

注意:注意Win32的用戶: 爲了能夠在Windows環境中,該模塊的libeay32.dll和ssleay32.dll必須存在的路徑。你不需要cURL站點的libcurl.dll。

所以我複製ssleay32.dll,的libeay32.dll & php_curl.dll從/ PHP到Windows/SYSTEM32和替換已存在的文件(我注意到有舊版本ssleay32.dll和的libeay32.dll的)。之後,我在php_info()中找到了CURL部分;最後一切正常。

祝你好運!

+0

這個筆記非常重要,它解決了我的問題。我相信它應該是被接受的答案。 – 2016-01-31 19:11:22

2

注意:Win32用戶注意事項 爲了在Windows環境下啓用該模塊(cURL),libeay32.dll和ssleay32。dll必須存在於你的PATH中。你不需要cURL站點的libcurl.dll。

這個筆記解決了我的問題。分享的想法。 libeay32.dll & ssleay.dll你會在你的php安裝文件夾中找到。

45

使用以下步驟來安裝捲曲:

  1. 打開https://curl.haxx.se/dlwiz?type=bin在瀏覽器中。

  2. 在下拉框中選擇您的操作系統:Windows/Win32或Win 64.單擊選擇!

  3. 對於Win 32,選擇是否在Windows命令提示符(通用)或Cygwin終端(cygwin)中使用curl。對於Win 64,選擇是否在Windows命令提示符(通用)或MinGW(MinGW64)中使用curl。點擊選擇!

  4. 如果需要,請選擇您的Windows操作系統。完。

  5. 點擊下載對於具有啓用或禁用SSL

  6. 打開下載的zip文件的版本。將文件解壓縮到一個易於查找的位置,例如C:\ Program Files。

測試卷曲

  1. 打開Windows命令提示符終端。 (從開始菜單中,單擊運行,然後鍵入cmd。)

  2. 設置路徑以包含放置curl.exe的目錄。例如,如果你把它放在C:\ Program Files文件\捲曲,然後您可以鍵入以下命令: 集路徑=%路徑%; 「C:\ Program Files文件\捲曲」

注意:您還可以直接複製curl.exe文件路徑中的任何現有路徑

  1. 鍵入curl。 您應該看到以下消息: curl:嘗試'curl -help'或'curl -message'以獲取更多信息 這意味着將安裝curl並且路徑是正確的。
1

我同意Erroid,你必須把PHP目錄加入PATH環境。

PATH=%PATH%;<Your_PHP_Path> 

PATH=%PATH%;C:\php 

它爲我工作。謝謝。

2

別人另一個答案誰都有過這樣的問題

當您取消註釋的延長線,將其更改爲:

延長= C:/php/ext/php_curl.dll

或擴展文件夾的位置,對我來說沒有工作,直到我這樣做

0

您還可以使用CygWin並安裝捲曲包。它工作得非常好,完美無瑕!