Symfony部署VPS报错:MongoDB\Driver\Monitoring\CommandSubscriber类未找到
问题解决:Symfony部署时MongoDB CommandSubscriber类找不到错误
错误根源
MongoDB\Driver\Monitoring\CommandSubscriber 接口是mongodb扩展1.19.0版本才新增的,你当前使用的1.18.0版本不包含这个接口,而DoctrineMongoDBBundle的APM组件(StopwatchCommandLogger)依赖该接口,因此触发报错。
解决方案
1. 升级mongodb扩展到1.19.0及以上版本
- 卸载旧版本扩展:
pecl uninstall mongodb - 安装指定兼容版本(或最新稳定版):
# 安装1.19.0版本 pecl install mongodb-1.19.0 # 或者直接安装最新稳定版 pecl install mongodb - 确认
php.ini中extension = mongodb配置已生效,重启PHP-FPM或Web服务器(如Nginx/Apache)。
2. 验证扩展版本
执行以下命令确认版本更新:
php -i | grep "MongoDB extension version"
确保输出版本为1.19.0及以上。
3. 清除Symfony缓存
生产环境下执行缓存清理,避免旧缓存残留的类映射问题:
php bin/console cache:clear --env=prod
4. 检查DoctrineMongoDBBundle兼容性
如果升级扩展后仍有问题,检查composer.json中doctrine/mongodb-odm-bundle的版本,确保其与你的PHP版本、mongodb扩展版本匹配。执行以下命令查看当前包版本:
composer show doctrine/mongodb-odm-bundle
内容的提问来源于stack exchange,提问作者Sébastien Borgne
相关产品推荐
相关产品推荐

