2011-12-11 97 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的重新启动

这将工作:)