PHP 无法加载php_curl.dll扩展名

2022-08-30 12:19:28

跟进我昨天的帖子(使用PHP启用cURL))

问题是PHP无法加载php_curl.dll。我尝试了几个步骤,包括取消注释,确保路径中的依赖项和eixst,重新下载php_curl.dll,替换旧文件,最后将文件复制到我的System32文件夹中。extension=php_curl.dlllibeay32.dllssleay32.dll

我使用的是Apache 2.2和PHP 5.4.14。我使用各自的软件包安装了两者;我没有使用 XAMP 或 WAMP。我使用的是 Windows 7 64 位。

任何帮助将不胜感激。


答案 1

libeay32.dll并且必须具有路径可访问性才能成功加载。ssleay32.dllphp_curl.dll

但是将它们复制到Apache的,Apache的,Window的,或者更糟糕的是Windows主目录是一个糟糕的黑客,甚至可能不适用于较新的PHP版本。ServerRoot\bin\\System32\

正确的方法是将PHP路径添加到Windows变量中。Path

  1. 在单击“高级系统设置”或按+并键入Control Panel -> SystemWINRSystemPropertiesAdvanced
  2. 单击按钮 环境变量
  3. “系统变量”下,您将找到该变量。编辑它并附加到它之前 - 或者你的PHP文件夹的路径是什么。
    (提示:如果您的PHP文件夹包含空格,则可能需要在此处使用短文件名形式,即.PathC:\PHP;C:\Program Files\PHPC:\Progra~1\PHP
  4. 然后完全停止Apache并重新启动它(简单的重新启动可能还不够)。

2017-05年更新:
我更改了上述说明,在Path变量前面附加PHP路径,而不是附加到它上面。这可确保使用 PHP 路径中的 DLL,而不是使用系统的其他路径中的任何其他(过时)版本。

2018-04更新:
如果您已经选择了错误的方式并将任何PHP DLL复制到Apache或Windows路径,那么我强烈建议您再次删除它们!如果不这样做,以后尝试更新 PHP 时可能会遇到麻烦。如果新的 PHP 版本带来了这些 DLL 的新版本,但您的旧 DLL 仍然在系统或 Web 服务器路径中徘徊,则可能会首先找到这些旧 DLL。这肯定会阻止PHP解释器启动。此类错误可能很难理解和解决。因此,如果您将任何提到的 DLL 复制到Windows和Apache路径中,那么现在最好清理并从中删除它们。
(感谢@EdmundTam和@WasimA在评论中指出这个问题!

2019-10 版更新:
提示:要查找这些 DLL 的所有副本并检查是否可能将它们放在错误的文件夹中,可以在 Windows 命令提示符窗口中使用以下命令:

dir c:\libeay32.dll /s
dir c:\ssleay32.dll /s

请注意,这些命令可能需要一些时间才能完成,因为它们会搜索系统驱动器 C: 的整个目录结构。

更新2020-08:
如果您的PHP文件夹包含空格(即),您可能需要在步骤3的变量中使用短文件名形式(即)。感谢@onee的这个提示!C:\Program Files\PHPPathC:\Progra~1\PHP


答案 2

在 PHP 5.6.x 版本中,您应该执行以下操作:

从文件夹移动到文件夹 DLL:Windows\system32php

libssh2.dll, ssleay32.dll, libeay32.dll和从文件夹php_curl.dllphp ext

从文件夹移动到文件夹:Apache24\binphp

libssh2.dll

另外,不要忘记取消注释extension=php_curl.dllphp.ini


推荐