PHP,"call to undefined function curl_init()"浏览器中,但在cmd上工作正常



我有一个简单的测试代码:

<?php
var_dump(curl_init());
echo '.';

如果我在命令行(Windows 10(上运行它,我会得到预期的结果:

php.exe test.php

类型为(curl(的资源(4(。

非常好。但是当我从浏览器运行这个文件时(设置为Apache rootdir(。

致命错误:未捕获错误:调用中未定义的函数curl_init((

我无话可说。出于遗留的原因,这是php7.04(在7.2、7.4、8.1上,一切都很好(。php.ini确实有效。当然";extension=php_curl.dll";已启用。当我改变一些东西时,例如";max_execution_time=300〃;,CCD_ 1还向我强调了这些设置被考虑在内。然而,奇怪的是php_info((所说的:

cURL Sterling Hughes

没有更多关于curl的内容了!

编辑:

我用";extension=php_gd2.dll";如果我删除/读取它,它确实有效,phpinfo正确地显示了这一点!

这是因为php文件夹不在您的系统PATH中(而不是用户(,Apache不知道在哪里搜索dll。最简单的方法是将php文件夹添加到PATH中。

如果您不想这样做,您可能需要将extension_dir设置为php.ini中扩展文件夹的完整路径。例如:

extension_dir = "D:Program Filesphp-7.04-tsext"

cURL扩展需要openssl才能工作您也可以在php文件夹中找到这些dll,只需将它们复制到Windows或system32文件夹即可根据RiggsFilly的评论,您可以将这些必需的dll复制到Apachebin文件夹中。

  • libssl-1-x64.dll/libeay32.dll
  • libcrypto-1_1-x64.dll/ssleay32.dll
  • libssh2.dll

最新更新