2011-12-11 117 views
21

我試圖在我的apache服務器上運行我的第一個facebook php應用程序。 它給出錯誤Facebook needs the CURL PHP extension.。我在php.ini中添加了extension=php_curl.dll行,它在phpStorm ide中正常運行。 但是,當我把PHP文件放入apache目錄並手動運行服務器時,它仍然在網絡瀏覽器中發生錯誤。Facebook需要CURL PHP擴展

在一個新的PHP頁面類型
+2

你必須安裝擴展和啓用在php.ini中。另外,完成兩者後重新啓動您的網絡服務器。 – janoliver

+0

它工作正常,當我運行php phpStorm ide.I已重新啓動服務器。 –

+0

你剛剛取消註釋php.ini中的行而沒有檢查擴展名是否實際可用,例如:'path/to/your/www/php/ext/php_curl.dll',同樣如果你使用IDE可能使用ide它自己的擴展名如'path/to/your/ide/php/ext/php_curl.dll',也可能不使用相同的php.ini文件。 –

回答

14

<?php 
phpinfo(); 
?> 

在那裏檢查,看看哪些php.ini中你需要編輯。

Loaded Configuration File: ________ path to ini file you must edit _______ 

另外,使用此頁面查看服務器是否認爲啓用了curl。你看這樣行:

cURL support enabled 

如果沒有編輯ini文件並重新啓動Web服務器後啓用,事情取決於你如何安裝了PHP

guide看起來足夠有前景的

+1

如果您使用的是Wamp 64bit,並且出現此錯誤,則打包的擴展實際上是竊聽。 http://www.morningtime.com/kb/188。這有一個固定的php_curl.dll – styks

+0

@凱爾文看起來像鏈接已經改變了一點。你能否提供另一個修補程序來處理wamp 64bit?我會很感激,我一直在努力奮鬥這個 –

+1

@BujancaMihai - 我看到其他網站已經改變。您可以在這裏獲得固定的擴展名。滾動到底部並查找固定捲曲擴展名。 http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/我在這個論壇帖子中發現了這個鏈接。 http://forum.wampserver.com/read.php?2,85716您也可以使用32位版本,具體取決於所有設置。我希望這對你有用。我沒有測試這個。 – styks

5

錯誤:

Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP extension

解決方案:

;extension=php_curl.dll

1)從php.ini文件中刪除;(從開始註釋)並保存。如果此行不在文件中,則不要添加此文件。

2)重新啓動appache(XAMPP)

18

我也得到錯誤。我試過這個命令。

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

我的問題已解決。

+1

這樣做並重新啓動服務器('service apache2 restart')。像魅力一樣工作! –

3

僅需要取消註釋延長= php_curl.dll從C:\ XAMPP \ PHP \ php.ini中

+0

這是一個不完整的答案,並且猜測什麼是錯誤的。它沒有提供任何新東西,因爲原始問題中的一條評論也指示OP檢查他們的'php.ini'文件。 –

+1

@Grant Winney:我想用Facebook的PHP SDK編程。我跟着他們的文檔,他們的例子沒有工作,並拋出了這個問題的標題的錯誤信息。我做了Yannick在上面發佈的內容,並解決了這個問題。對原始問題添加評論的人是愚蠢的,因爲沒有將其作爲答案發布。 –

+0

感謝您發佈安德魯。很高興知道Yannick的答案奏效了,但這與去年mona rajput提供的答案是一樣的。 –

0

Facebook的API需要捲曲PHP擴展。你所需要做的就是改變php.ini文件中的設置。

在文件中搜索「extension = php_curl」。取消註釋該行,刪除它的分號前面。這應該工作!

0

打開phpini文件並取消註釋以下curl擴展名。然後重新啓動你的wamp server.This工作正常。

;extension=php_curl.dll 
1

我與Ubuntu 16.04 LTS和PHP 5.6(LEMP)配置有同樣的問題。這已通過以下命令解決。

$ sudo易於得到安裝捲曲libcurl3 libcurl3-dev的php5.6捲曲

驗證Curl.so文件擴展名目錄 $ PHP -i | grep的的extension_dir(這會給你的PHP擴展目錄路徑)

驗證curl.in文件

$ sudo的VI /etc/php/5.6/mods-available/curl.ini

它應該是

*;配置爲php捲曲模塊

;優先級= 20

延長= curl.so *

驗證在PHP中啓用了捲曲

$ PHP -i | grep curl

輸出應該是;

捲曲支持=>啓用

捲曲信息=> 7.35。0

年齡=> 3

特點

AsynchDNS =>是

的Charconv =>沒有

調試=>沒有

GSS-協商=>是

IDN =>是

的IPv6 =>是

krb4用=>沒有

Largefile =>是

libz進行=>是

NTLM =>是

NTLMWB =>是

SPNEGO =>否

SSL =>是

SSPI =>沒有

TLS-SRP =>是

協議=>快譯通,文件,FTP,FTPS,地鼠,HTTP,HTTPS,IMAP,IMAPS,LDAP, LDAPS,POP3,POP3S,設rtmp,RTSP,SMTP,SMTPS,遠程登錄,TFTP

主機=> x86_64的-PC-Linux的GNU

SSL版本=>的OpenSSL/1.0.1f

zlib的版=> 1.2.8

重新啓動php5.6-FPM

$ sudo的服務php5.6-FPM重啓

重啓Nginx的

$ sudo的服務nginx的重新啓動

這將工作:)