我在使用PHP 7的Ubuntu 16上安装了cURL,但我仍然调用未定义的函数curl_init()

时间:2016-06-09 04:08:22

标签: php curl php-7 ubuntu-16.04

我做过sudo apt-get install curl,sudo apt-get php5-curl,sudo apt-get php-curl但是我得到curl_init()的未定义函数

有人知道任何解决方案吗?

这是我的PHP代码。

<?php 
    // create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "example.com"); 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch);      
?>

4 个答案:

答案 0 :(得分:4)

使用phpinfo();函数检查apache使用的PHP版本。

检查很重要,因为您可能因任何原因切换到较低版本(就像我的情况一样)。

现在从命令行运行此命令以安装curl

*(Don\'t copy this) sudo apt-get install php[version of php]-curl* 

例如,如果 5.6 ,则使用

sudo apt-get install php5.6-curl 

之后,不要忘记重启apache2

sudo service apache2 restart

答案 1 :(得分:4)

对于运行php7.0的Ubuntu 16.04,你应该指定如下版本:

en

然后,像往常一样,用

重启apache

sudo apt-get install php7.0-curl

答案 2 :(得分:2)

试试这个:phpenmod curl并重新启动apache。希望这有帮助(;

答案 3 :(得分:2)

对于任何在安装php扩展程序时遇到类似问题且仍然获得undefined的人:

  1. 如果正则表达式匹配php -i | grep EXT_NAMEEXT_NAME(在上述情况curl中)的任何内容,或者只是使用{生成测试文件,请运行phpinfo()以查看输出{1}}并查看您是否发现了扩展程序。
  2. 运行<?php phpinfo(); ?>查看已加载的扩展程序,并使用php -mphp -v检查是否有其他安装优先于find -name 'php.ini'或多个php.ini文件在根目录中。
  3. 如果您安装了模块,请不要忘记重启apache(或任何其他类似服务)和/或启用。
  4. apache的

    3#可以通过运行locate php.ini

    来完成

    如果您从源代码构建另一个可能的原因可能是您在安装扩展程序后忘记重新编译PHP(在这种情况下,service apache2 restartcurl