libeay32.dll
并且ssleay32.dll
必须是可访问的路径才能php_curl.dll
加载成功。
但是将它们复制到 Apache's ServerRoot
、 Apache's \bin\
、 Window's \System32\
,甚至更糟糕的是复制到 Windows 主目录中是一种糟糕的 hack,甚至可能不适用于较新的 PHP 版本。
正确的做法是将 PHP 路径添加到 WindowsPath
变量中。
- 在
Control Panel -> System
单击高级系统设置或按WIN+R并键入SystemPropertiesAdvanced
- 单击按钮环境变量。
- 在系统变量下,您将找到该
Path
变量。编辑它并添加到它前面C:\PHP;
- 或者你的 PHP 文件夹的路径是什么。
(提示:如果您的 PHP 文件夹包含空格,C:\Program Files\PHP
您可能需要在此处使用短文件名形式,即C:\Progra~1\PHP
.)
- 然后完全停止 Apache 并重新启动它(简单的重启可能不够)。
2017 年 5 月更新:
我更改了上面的说明,将Path变量添加到 PHP 路径之前,而不是附加到它上面。这确保使用 PHP 路径中的 DLL,而不是系统其他路径中的任何其他(过时)版本。
2018-04 更新:
如果您已经选择了错误的方式并将任何 PHP DLL 复制到 Apache 或 Windows 路径,那么我强烈建议您再次删除它们!如果你不这样做,你以后尝试更新 PHP 时可能会遇到麻烦。如果新的 PHP 版本带来了这些 DLL 的新版本,但您的旧 DLL 仍然在系统或网络服务器路径中徘徊,则可能首先找到这些旧 DLL。这肯定会阻止 PHP 解释器启动。此类错误可能很难理解和解决。所以最好现在清理并从 Windows 和 Apache 路径中删除任何提到的 DLL,如果你在那里复制它们的话。
(感谢@EdmundTam 和@WasimA。在评论中指出了这个问题!)
2019-10 更新:
提示:要查找这些 DLL 的所有副本并检查是否将它们放置在错误的文件夹中,可以在 Windows 命令提示符窗口中使用以下命令:
dir c:\libeay32.dll /s
dir c:\ssleay32.dll /s
请注意,这些命令在搜索系统驱动器 C: 的整个目录结构时可能需要一些时间才能完成。
2020-08 更新:
如果您的 PHP 文件夹包含空格(即C:\Program Files\PHP
),您可能需要Path
在步骤 3 的变量中使用短文件名形式(即C:\Progra~1\PHP
)。感谢@onee 的提示!