5

我已经完成了 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

4 回答 4

4

对于运行 php7.0 的 Ubuntu 16.04,您应该像这样指定版本:

sudo apt-get install php7.0-curl

然后,像往常一样,重新启动 apache

sudo service apache2 reload

于 2017-08-05T20:32:29.913 回答
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
于 2016-09-01T19:35:50.087 回答
3

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

于 2016-06-09T04:36:04.107 回答
2

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

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

3# for apache 可以通过运行来完成service apache2 restart

如果您是从源代码构建,另一个可能的原因可能是您在安装扩展后忘记重新编译 PHP(在这种情况下也是如此curl) 。--with-curl[=DIR]

于 2016-06-09T04:48:51.877 回答