致命错误:在第9行调用...中的未定义函数curl_init()

The*_*hew 62 php linux ubuntu debian curl

<?php
$filename = "xx.gif";
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));

// $data is file data
$pvars   = array('image' => base64_encode($data), 'key' => IMGUR_API_KEY);
$timeout = 30;
$curl    = curl_init();

curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);

$xml = curl_exec($curl);

curl_close ($curl);

var_dump($xml);
?>
Run Code Online (Sandbox Code Playgroud)

我正在使用Imgur API,但它似乎不起作用.PHP.net说这curl_init()是在PHP5中,但我的主持人说它不是.我怎样才能做到这一点?

Mar*_*erg 123

在旧版本的Debian和Ubuntu上,您通过安装PHP的Curl扩展并重新启动Web服务器来解决这个问题.假设网络服务器是Apache 2:

sudo apt-get install php5-curl
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

在较新的版本中,包名称已更改:

sudo apt install php-curl
Run Code Online (Sandbox Code Playgroud)

您可能需要安装更多:

sudo apt-get install curl libcurl3 libcurl3-dev;
Run Code Online (Sandbox Code Playgroud)


fir*_*ire 38

curl是需要安装的扩展,它与PHP版本无关.

http://www.php.net/manual/en/curl.setup.php

  • 该页面没有说明如何安装扩展程序.有更好的资源吗? (7认同)

Mic*_*rey 14

尚未有足够的声誉发表评论.使用Ubuntu和一个简单的:

sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

不适合我.

出于某种原因curl.so,安装在默认情况下未选中的位置.我检查了extension_dir我的php.ini并复制curl.so到我的extension_dir

cp /usr/lib/php5/20090626/curl.so  /usr/local/lib/php/extensions/no-debug-non-zts-20090626
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助某人,相应地调整您的路径位置.


Vin*_*nay 13

对于Ubuntu

安装PHP的Curl扩展并重启apache服务器.

sudo apt-get install php5-curl
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

对于Windows

由于不将lib_curl.dll包含在PHP中而出现问题.如果不起作用,也会加载以下扩展名,因此php.ini如果php.ini文件中已存在则扩展或删除评论,然后删除评论.

extension=php_bz2.dll
extension=php_curl.dll
extension=php_dba.dll
Run Code Online (Sandbox Code Playgroud)

现在重启apache服务器.如果您收到错误"无法加载php_curl.dll",请将SSLEAY32.PHP,libEAY32.dll(OpenSSL)库复制到System32文件夹.


Maz*_*kah 5

用于 ubuntu 上的 php 7.0 使用

sudo apt-get install php7.0-curl
Run Code Online (Sandbox Code Playgroud)

最后,

sudo service apache2 restart 
Run Code Online (Sandbox Code Playgroud)

或者

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

  • 找到你的版本:$php --version version =7.X 然后安装:$ sudo apt-get install php7.X-curl (2认同)