【问题标题】:PHPUnit - Call to undefined function curl_init() errorPHPUnit - 调用未定义函数 curl_init() 错误
【发布时间】:2012-03-08 16:57:52
【问题描述】:

我正在使用 PHPUnit 尝试对一些 PHP 文件进行单元测试,这些文件是我正在开发的 Web 应用程序的一部分。我已经设置了 WAMP 服务器,并设置了我的 php.ini 文件以安装 curl 扩展。我通过检查 phpinfo() 验证了它是否已安装,并且 curl 在页面上确实有一个配置部分,表明它已安装。

当我从索引页面开始运行整个 Web 应用程序时,我尝试测试的这个 php 页面发现 curl_init() 函数没有问题。

但是,当我对文件运行单元测试时,它给了我以下错误:

PHP Fatal error: Call to undefined function curl_init() in ...

就像我说的,调用 curl_init() 的文件在整个应用程序的上下文中运行时效果很好,但是当我的 PHPUnit 测试单独运行它时找不到它。有谁知道为什么会这样? PHPUnit 不知道如何找到安装在我的 WAMP 服务器上的 PHP 扩展?

【问题讨论】:

  • 你是从命令行调用的吗?如果是这样,则使用了另一个 php.ini 文件,该文件可能不包含 cURL 库。

标签: php curl phpunit


【解决方案1】:

您需要将 Curl 库添加到命令行 PHP.ini。

您可能只需将文件C:\wamp\bin\apache\Apache2.2.x\bin\php.ini 复制到c:\wamp\bin\php\php5.3.10\php.ini(根据系统上的实际目录进行调整)。

【讨论】:

  • 非常感谢!我不知道有两个不同的 PHP.ini 文件。事实证明我确实在编辑错误的文件,并且一旦我编辑了命令行 PHP.ini 文件以添加扩展名,它就起作用了。谢谢!
【解决方案2】:

打开您的c:\wamp\bin\php\php5.x.x\php.ini 文件并找到:

    ;extension=php_curl.dll

去掉分号即可取消注释,如:

    extension=php_curl.dll

并保存文件。

【讨论】:

    【解决方案3】:

    最新的php.ini文件会有

    ;extension=curl

    所以请删除;并保存工作正常

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2013-04-20
      • 1970-01-01
      • 2018-09-22
      • 2017-07-15
      • 2011-05-27
      • 2012-09-05
      • 2015-06-11
      相关资源
      最近更新 更多