Php,“调用未定义的函数curl_init()”在浏览器中,但在cmd上工作正常

myzjeezk  于 2022-11-13  发布在  PHP
关注(0)|答案(1)|浏览(151)

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

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

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

php.exe测试.php

类型(curl)的资源(4)。
非常好。但是当我从浏览器运行这个文件时(设置为Apache根目录)。
致命错误:未捕获的错误:调用中未定义的函数curl_init()
由于遗留问题,这是php 7. 04。(在7.2、7.4、8.1上一切都很好)。php.ini确实可以工作。当然“extension= php_curl. dll”是启用的。当我更改一些东西时,例如“max_execution_time = 300”,php_info();也会加强我,这些设置都被考虑在内。然而,奇怪的是php_info()的内容:
斯特林·休斯公司
curl没什么了!
编辑:
我尝试了同样的“extension=php_gd2.dll”,如果我删除/重新添加它,它确实工作,phpinfo显示正确!

c8ib6hqw

c8ib6hqw1#

这是因为php文件夹不在你的系统路径(不是用户路径)中,Apache不知道在哪里搜索dll。最简单的方法是将php文件夹添加到PATH中。
如果您不想这样做,您可能需要将extension_dir设置为php.ini中扩展文件夹的完整路径。例如:

extension_dir = "D:\Program Files\php-7.04-ts\ext"

cURL extension需要openssl才能工作。你也可以在php文件夹中找到这些dll,只需将它们复制到Windows或system32文件夹中。根据RiggsFilly的注解,你可以将这些所需的dll复制到Apache\bin文件夹中。

  • 文件系统
  • x64.dll/ssleay32.dll文件系统中的加密文件
  • libssh2.dll

相关问题