Я пытаюсь выполнить это:
<?php
// connect
$m = new Mongo();
?>
Но я получаю следующую ошибку:
Неустранимая ошибка: класс "Монго" не найден в C:\wamp\www.....
Я следил за точками установки MongoDB (включая добавление DLL к ext и php.ini), я начал работать с mongod.exe и WAMP.
У меня это работает на другой машине Windows 7 (Windows 7 Profressional). Мне было любопытно. Итак, теперь мой компьютер с Windows 7 Enterprise SP1 имеет те же http.conf
, php.ini
, C:\wamp\bin\mongodb
содержимое (поэтому DB - то же самое) и тот же командный файл, чтобы запустить mongod.exe
в качестве моей машины Win7 Professional.
Но все-таки все, что я могу сделать на моей машине Win7 Enterprise SP1, подключается через командную строку. Моя машина Win7 Professional phpinfo()
содержит:
Моя машина Win7 Enterprise SP1 не содержит ссылок на MongoDB.
Содержимое командного файла, используемого для запуска MongoDB:
"C:\wamp\bin\mongodb\bin\mongod.exe" --logpath "C:\wamp\bin\mongodb\logs\error.log" --logappend --dbpath "C:\wamp\bin\mongodb\data\db" --directoryperdb --service
Net Start "MongoDB"
pause
Проблема заключалась в драйвере PHP (php_mongo.dll
). По какой-то причине Apache/WAMP не понравилась версия mongo-1.1.4-php5.3vc6ts
. Моя машина Windows 7 Professional имела версию mongo-1.2.5-php5.3vc9ts
. Это была единственная разница между двумя машинами.
Я изначально использовал версию драйвера mongo-1.2.5-php5.3vc9ts
на машине Windows 7 Enterprise, но при решении проблемы с ней был изменен на версию mongo-1.1.4-php5.3vc6ts
. Таким образом, исходной проблемой могло быть просто то, что путь базы данных data\db
не существовал/не мог быть найден (и должен быть указан с помощью --dbpath
при запуске/запуске mongod.exe
).
php_mongo.dll
а не php_mongodb.dll
. 2 пакета присутствуют в библиотеке PECL. Также для vc6 и vc9 требуется установленная библиотека C ++ Redistributable. Версия x86 или x64 зависит от скомпилированной версии Apache
Если эта проблема существует в php CLI, вы должны добавить extension=mongo.so
в свой /etc/php5/cli/php.ini
файл
В Ubuntu я использовал этот учебник. После установки echo phpinfo() и проверьте, находится ли файл mongo.ini в правильном каталоге, указанном в phpinfo, с помощью "Сканировать этот каталог для дополнительных файлов .ini"
Проверьте точное имя компилятора вашего двоичного файла PHP на странице phpinfo и попробуйте переустановить драйвер mongo, построенный на том же компиляторе.
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows
Теперь вы используете драйвер mongo для Visual Studio 6 с помощью Thread-safe. (vs6ts означает это)
Аналогичная проблема была вызвана проблемой компилятора;
php.ini
(тот, который указанphpinfo()
как загруженный)php.ini
соответствии сphpinfo()