Curl 扩展不起作用 - PHP 警告:PHP 启动:无法加载动态库 php_curl.dll

Curl 扩展不起作用 - PHP 警告:PHP 启动:无法加载动态库 php_curl.dll

我在运行 64 位系统的 Windows 7 操作系统上使用 Apache 2.2 服务器和 PHP 5.3.6。

启动 Apache 服务器时,此错误出现在 Apache 错误日志中 -

PHP 警告:PHP 启动:无法加载动态库“D:\php5\ext\php_curl.dll”- 在第 0 行的未知位置找不到指定的模块。\r\n

以下是 php.ini 文件中提到的其他扩展 -

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll 
extension=php_mysql.dll
extension=php_xsl.dll
extension=php_memcache.dll

回显phpinfo()没有显示 curl 扩展已加载,但是其他扩展已加载。

但是该php_curl.dll文件与其他文件一起存在于正确的位置 - D:\php5\ext\php_curl.dll

phpinfo()表明

extension_dir = D:\php5\ext

所以,这也是正确的。

更多细节

我是这个团队的新成员,我已经在这个 Windows 7 系统上分别设置了 Apache 和 PHP,一切都运行正常。

我们的项目需要大量 httpd conf 更改,因此我被要求用团队的当前版本覆盖 httpd conf 文件。我做了同样的事情,只是更改了 ServerName、ServerAdmin 等。我还复制了他们的 PHP 安装目录。

除此扩展之外的一切都运行良好。

答案1

原因很可能是缺少一些必要的 dll 文件。查看我的其他问题修改 Apache 配置后 Apache 启动失败,显示语法错误,无法将 php5apache2_2.dll 加载到服务器中在遇到一些类似的疯狂错误后,我将其放在了后面。我在那里描述了解决方案。

答案2

PHP 警告:PHP 启动:无法加载动态库“…\php-5.6.9\ext\php_curl.dll”

在 Windows Server Core 2012 x64 上使用 PHP 5.6.9 时,cURL 无法正常工作,尽管我在 php.ini 中取消注释了 php_curl.dll 扩展并重新启动了 Apache 2.4 服务,但 phpinfo 中仍未显示。将 php 路径和 php\ext 路径添加到我的 $evn:path。毫无进展。

修复:我不需要下载任何其他 php_curl.dll 文件,而且无论如何都找不到适用于 PHP 5.6 的文件。最终有效的方法是复制这些文件放入 Apache24\bin 文件夹然后重新启动 Apache:

libeay32.dll

libssh2.dll

ssleay32.dll

不需要将这些复制到 System 或 System32。

答案3

确保该文件未损坏且运行 apache 的用户可以读取。

答案4

仅将 libssh2.dll 从 php 目录复制到 apache/bin 目录(以解决 php_curl.dll 的问题)

相关内容