一尘不染

PHP无法加载php_curl.dll扩展名

php

昨天我帖子的后续内容(使用PHP启用cURL)

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

我正在使用Apache 2.2和PHP 5.4.14。我使用它们各自的软件包进行安装;我没有使用XAMP或WAMP。我正在使用Windows 7 64位。

任何帮助将不胜感激。


阅读 242

收藏
2020-05-29

共1个答案

一尘不染

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

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

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

  1. 在中Control Panel -> System单击 高级系统设置, 或按WIN+ R并键入SystemPropertiesAdvanced
  2. 单击按钮 环境变量
  3. 系统变量下, 您将找到该Path变量。编辑它并添加C:\PHP;到它前面-或指向您的PHP文件夹的路径。
  4. 然后完全停止Apache并重新启动它(简单的重新启动可能还不够)。

更新2017-05:
我改变了上述指示 预先考虑 与PHP路径,而不是Path变量 追加
到它。这样可以确保使用PHP路径中的DLL,而不使用系统其他路径中的任何其他(过时)版本。

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

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

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

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

2020-05-29