【发布时间】:2022-01-09 23:03:04
【问题描述】:
很长一段时间以来,我一直在使用 XAMPP 在我的开发工作站上进行升级,从 7 到 8.012 的各种版本。
升级到 8.1 好像碰壁了。
我已编辑 apache 配置以使用新版本的 php。取php.ini-development并将其重命名为php.ini,然后在我重新启动apache后取消注释openssl扩展无效:
extension=openssl
php 信息页面中未启用 Openssl:
如果我尝试通过将我的扩展从以前的安装移过来来启用 mongodb,并取消注释 php.ini 中的扩展并再次重新启动 apache,我会收到错误:
extension=php_mongodb.dll
更新:我现在发现在 PHP 8.1 下启用任何 PHP 模块都不起作用。
我可以回滚到php-8.0.12 的先前版本并再次拥有一个功能齐全的php。当我回滚到以前的版本时,启用和禁用 PHP 模块仍然有效。它在 PHP 8.1 下不起作用。
如果可能的话,我希望了解最新版本!
我对这个版本的 PHP 做错了什么?为什么我什么都不能启用?
【问题讨论】:
-
您似乎正在使用为 8.0 编译的扩展(如 dll 路径所示)。您不能移动使用不同安装构建的扩展。你需要得到一个为 8.1 构建的
-
好的,谢谢。我不确定这是否适用于 MongoDB。如果我可以通过
pecl install mongodb安装它,我会的。但是你必须启用openssl才能做到这一点。正如我在帖子中提到的那样,8.1 甚至不允许我启用openssl。 -
在 Windows 的 8.0 中,该行是
extension=php_openssl.dll,但您提到的是extension=openssl,您确定这是正确的吗?不确定这是否在 8.1 中发生了变化。不幸的是,我不知道如何在 Windows 中构建扩展。在 Linux 中,我之前已经设法从源代码构建它们,因此如果您找不到 mongodb 的 8.1 版本,可能会有等效指南 -
好的,我已经尝试将其更改为
extension=openssl.dll并再次重新启动 apache。不用找了!phpinfo中仍然没有显示 openssl 扩展。 -
php_openssl.dll怎么样?基本上可用的扩展应该在 \ext 所以检查它是否在那里