3

很长一段时间以来,我一直在使用 XAMPP 在我的开发工作站上进行升级,从各种版本 7s 到 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 做错了什么?为什么我不能启用任何东西?

4

2 回答 2

5

我不得不将 FULL PATH 设置为 Windows 上的扩展目录。一旦我这样做并重新启动,我就能够启用/禁用扩展。在其中查找此行php.ini并根据您的需要进行调整:

; On windows:
extension_dir = "C:\xampp\php-8.1.0\ext\"

此设置仅在 Windows 上似乎很重要。按照您想要的方式设置该行,重新启动 apache,您应该一切顺利!

于 2021-12-08T14:25:49.060 回答
0

您正在复制使用旧版本编译的不兼容模块。如果您要升级 PHP 版本,您需要使用特定版本的 PHP 编译并适合您的服务器环境的扩展 DLL 文件。你可以从这里下载兼容的包PECL。下载 .dll 文件并将其放在您的扩展目录中。然后,您需要启用该扩展程序。这是 Windows 系统在 Windows 上安装 PHP 扩展的指南。

对于 MongoDB,请在此处获取https://pecl.php.net/package/mongodb

于 2021-12-07T07:54:46.057 回答