2016-03-11 2 views
0

Я установил Mongodb.so и необходимые библиотеки php, это рабочий файл в командной строке, используя следующий тестовый код, но посетите тот же файл в браузере, который дает ошибку (работает на Apache 2.4 + php 5.6) , мог ли кто-нибудь дать мне подсказку?php Ошибка MongoDB от браузера

Фатальная ошибка: Class 'MongoDB \ Driver \ менеджер' не найден в ./vendor/mongodb/mongodb/src/Client.php на линии 56

тестовый код следующим образом:

<?php 
$filename='./vendor/autoload.php'; 
require $filename; 
$client = new MongoDB\Client("mongodb://localhost:27017"); 
$collection = $client->demo->beers; 
$result = $collection->insertOne(['name' => 'Hinterland', 'brewery' => 'BrewDog']); 
echo "Inserted with Object ID '{$result->getInsertedId()}'"; 
?> 

также, проверка командной строки показывает, что libarary уже загружен в php php -m | grep mongo mongodb

+0

Подсказка: вы добавили расширение mongodb к правильному файлу 'php.ini', обычно для использования Apache обычно используется 2, 1, а один для использования CLI для PHP. Вы, очевидно, внесли изменения в версию CLI PHP, но, вероятно, пропустили версию Apache – RiggsFolly

+0

, файл php.ini тот же, но cli использует другую папку для дополнительных файлов .ini \t /etc/php-zts.d, поэтому я скопировал над mongodb.ini, теперь я вижу, что файл /etc/php-zts.d/mongodb.ini загружен на страницу phpinfo, я все еще не вижу элемент mogodb в списке, и та же ошибка все еще показывает, когда посещение тестового URL-адреса браузера, любая идея, как решить проблему? – eversun

ответ

0

Не пропустите проверку файла журнала ошибок для получения более подробной информации. В вашем CLI и веб-скриптах может быть доступ к различным путям или библиотекам. Убедитесь, что файл php.ini совпадает с одним и тем же путем в обеих средах. Цель состоит в том, чтобы использовать те же файлы библиотеки в обоих случаях.

+0

i double checked, php -i показывает конфигурационный файл /etc/php.ini – eversun

+0

phpinfo в браузере также показывает /etc/php.ini в качестве файла конфигурации, а также дополнительный файл загрузки содержит файл mongodb.ini, который загружает mangodb.so файл. тот же mongodb.so может быть использован в php cli без проблем, однако файл httpd error_log показывает ошибку: PHP Startup: не удается загрузить динамическую библиотеку '/usr/lib64/php-zts/modules/mongodb.so', mongodb .so: undefined symbol: file_globals в Unknown on line 0 – eversun

+0

Дополнительная информация из файла error_log, пожалуйста, сообщите, как исправить эту проблему? PHP Warning: PHP Startup: не удается загрузить динамическую библиотеку '/ usr/lib64/php-zts/modules/mongodb.so '- /usr/lib64/php-zts/modules/mongodb.so: undefined symbol: file_globals в Unknown on line 0 – eversun

0

Посмотрите на переменную окружения пути. Мне пришлось изменить путь для правильной работы php7. У меня был путь php5.

Смежные вопросы