Php 7.1 / Apache 2.4 / Windows - Openssl 加载错误

Php 7.1 / Apache 2.4 / Windows - Openssl 加载错误

我想将本地服务器升级到 php 7.1。当我尝试执行此操作时,除了 openssl 之外,一切都很顺利。

使用 php <= 5.30 openssl 可以完美运行,但如果我切换到 php 7.1 openssl 就会被禁用。

我认为每个设置都没问题(http.conf,php.ini),因为相同的设置适用于其他 php 版本。

使用 php 7.1 我获得如下消息:无法找到包装器“https” - 您在配置 PHP 时是否忘记启用它

我尝试在 windows 文件夹和 apache/bin 文件夹中复制 libeay32.dll、ssleay32.dll 和 openssl.exe,我尝试将 php 目录添加到 windows 路径,我尝试了在各个页面上读过的所有可能的方法,但没有任何变化。

有人能帮我吗?

答案1

我遇到了同样的问题,并设法修复了它。我发现 DLL 依赖于这些文件libeay32.dllssleay32.dll并认为 PHP7.1 是 VC14 编译的,这可能是一个不兼容问题。查看我的 PATH 我发现该目录C:\Program Files (x86)\Intel\iCLS Client\是第一个提供过时版本 (1.0.0.17) 的文件的目录,如下所示(左边是英特尔的,右边是与 PHP 捆绑在一起的);

libeay32.dll 属性

虽然我认为这可能会导致不兼容错误并破坏 iCLS 客户端,但我还是冒险将这些目录移至 PHP 目录下方,从而(重新启动 Apache 后)解决了该问题。

新 PATH

答案2

我遇到了同样的问题。因此,我将这些文件从“旧” PHP 5.6 文件夹复制到 PHP (7.2) 文件夹(或者对您来说可能是在 windows 文件夹或您的路径所在的任何位置)。这些文件在我的 PHP 7.2 安装中不可用。而且它运行完美。

相关内容