PHP 8.0.12 升级到 PHP 8.1 - 多个模块错误

PHP 8.0.12 upgrade to PHP 8.1 - multiple module errors

长期以来,我一直在使用 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 模块在 PHP 8.1.

下不起作用

我可以回滚到以前的 php-8.0.12 版本并再次拥有一个功能齐全的 php。当我回滚到以前的版本时,启用和禁用 PHP 模块仍然有效。它在 PHP 8.1.

下不起作用

如果可能的话,我想及时了解最新版本!

这个版本的 PHP 我做错了什么?为什么我不能启用任何东西?

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

的指南

对于MongoDB,在这里获取https://pecl.php.net/package/mongodb

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

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

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