PHP фатальная ошибка: класс "MongoClient" не найден
у меня есть сайт, использующий Apache, который представляет собой следующий код:
<?php $m = new MongoClient(); ?>
и когда я пытаюсь получить к нему доступ, я получаю ошибку по ошибке.log
`PHP Fatal Error: Class 'MongoClient' not found`
ниже приведены настройки, которые могут быть неправильными, но я не думаю.
php -i | grep 'Configuration'
=>Configuration File (php.ini) Path => /etc/php5/cli | Loaded Configuration File => /etc/php5/cli/php.ini
grep 'mongo' /etc/php5/cli/php.ini
=>extension=mongo.so
php -i | grep 'extension'
=>
extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
ls /usr/lib/php5/20121212/ | grep 'mongo.so'
=>mongo.so
я не смог найти ничего, чтобы предложить мне установил его неправильно или неправильно настроил. Я установил его в течение последних двух часов, используя pecl
и pear
(sudo pear install -f pecl/mongo
и sudo pecl install mongo
)
я перезапустил свой Apache и даже мой компьютер несколько раз.
так почему я получаю ошибку Class 'MongoClient' not found
?
я на Ubuntu. PHP версии 5.5.
Edit: я только что обнаружил, что MongoClient действителен при запуске php в интерактивном режиме. Возможно, это связано с разрешения пользователя проблема с установкой?
2 ответов
проблема заключалась в том, что я использовал php -i | grep 'Configuration'
найти .ini-файл. Это приводит к /etc/php5/cli/php.ini
. Оглядываясь назад, это должно было быть очевидным:cli
означает интерфейс командной строки, в основном для переводчика. Мне нужен был ini-файл, который использовал Apache.
к сожалению, не было большого способа сделать это, так как я не мог войти в www-data
пользователей, но я сделал файл, который имел код
<?php
phpinfo();
?>
и это показало, что то .расположение ini-файл фактически /etc/php5/apache2/php.ini
.
как только я обновил это файл ini с extension=mongo.so
, модуль был загружен при запуске, поэтому я перезапустил, и теперь все работает.
Я сделал это, используя следующую последовательность
sudo apt-get install mongodb
sudo service mongodb start
mongo
sudo pecl install mongo
cd /build/buildd/php5-5.5.9+dfsg/pear-build-download
sudo tar zxvf mongo-1.6.8.tgz
cd mongo-1.6.8
sudo phpize
cd ./configure
sudo make install
sudo gedit /etc/php5/apache2/php.ini
add extension=mongo.ini inphp.ini
sudo gedit/etc/php5/apache2/conf.d/mongodb.ini
add extension=mongo.so
sudo service apache2 restart
и с помощью следующего url