Это довольно часто встречающаяся ошибка, но, поскольку я много чего пытался исправить, я как бы выбиваюсь из идей.
У меня есть Symfony 2 с БД Монго. Я настроил свой файл composer.json для загрузки doctrine-mongo и doctrine-mongo-bundle,
"doctrine/mongodb-odm": "1.0.*@beta",
"doctrine/mongodb-odm-bundle": "3.0.*@beta",
Чтобы скачать эти 2 модуля, мне нужно было установить расширение mongo в PHP. У меня они оба, монго и монгодб, установлены через брев
brew install php56-mongo
brew install php56-mongodb
Я полагаю, что у меня также разрешены расширения монго, так как, когда я пишу
php -m
Я получаю это результаты
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mhash
mongo
mongodb
mysql
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
и вы можете увидеть монго там.
Также php -i возвращает информацию о том, что монго включено.
Но когда я пытаюсь поразить файл app_dev.php в моем проекте, я все равно получаю это:
ClassNotFoundException в строке 284 Connection.php: Попытка загрузки
класс «Mongo» из глобального пространства имен. Вы забыли заявление об использовании?
Я использую Mac OS X и имею chmod 777 на
app/logs
app/cache
web/
рекурсивно.
У вас есть идеи, что может вызвать это?
Спасибо.
PHP Cli и fpm / apache не используют одинаковую конфигурацию, что означает, что ваш php -m
может быть не точным.
Что вы можете сделать, это позвонить http://php.net/manual/en/function.extension-loaded.php внутри вашего файла точки входа php на вашем сервере и убедитесь, что он загружен. Перезапуск процессов также может помочь.
Других решений пока нет …