未找到 MongoDB\Driver\Monitoring\CommandSubscriber 类

问题描述 投票:0回答:1

我正在尝试在我的 VPS 上安装我的 Symfony 应用程序。我的应用程序使用 MongoDB 作为 noSQL 数据库。当访问该网站时,我得到

Class "MongoDB\Driver\Monitoring\CommandSubscriber" not found while loading "Doctrine\Bundle\MongoDBBundle\APM\StopwatchCommandLogger".

我用pecl安装了mongodb
在 php.ini 中添加了扩展名 = mongodb
我克隆了我的仓库
我运行了composer update,然后运行了composer install ->没有错误
然后我尝试访问我的应用程序并收到错误消息

Class "MongoDB\Driver\Monitoring\CommandSubscriber" not found while loading "Doctrine\Bundle\MongoDBBundle\APM\StopwatchCommandLogger".

我正在使用 php 8.2,mongodb 1.18
phpinfo 返回

MongoDB support => enabled
MongoDB extension version => 1.18.0
MongoDB extension stability => stable
libbson bundled version => 1.26.1
libmongoc bundled version => 1.26.1
php mongodb symfony vps
1个回答
0
投票

phpinfo 输出

MongoDB support => enabled
类似于
php --ini
命令的输出或
命令行界面
(CLI SAPI) 中的 phpinfo() 函数调用的输出。然而,Web 服务器环境(例如 php-fpm、cgi 或 apache2handler SAPI)中的
phpinfo()
函数调用通常以 HTML 格式显示输出。

因此,我认为您正在修改Web服务器未使用的配置文件。您可以通过创建包含以下内容的 PHP 文件来找出 Web 服务器使用哪个 php.ini 文件:

<?php
phpinfo();

然后在网络浏览器中打开此文件并搜索

Loaded Configuration File
指令。该指令显示 Web 服务器使用的 php.ini 文件的路径。现代 Linux 发行版经常分割配置文件,因此您可能还需要检查“扫描此目录以获取其他 .ini 文件”指令下的目录。在 Ubuntu 上,它通常类似于
/etc/php/8.1/fpm/conf.d/
(根据您的 PHP 版本进行调整)。用户需要在该目录中创建一个类似
90-mongodb.ini
的文件,并使用
extension
指令,例如
extension=mongodb.so

更改配置文件后,需要重新启动SAPI服务(例如php-fpm服务)才能应用更改。

© www.soinside.com 2019 - 2024. All rights reserved.