Самый простой способ установить расширение Mongodb PHP в Ubuntu 13.10 (saucy)?
Я использую Ubuntu 13.10 (saucy salamander), и я надеялся, что sudo apt-get install php5-mongo
будет достаточно, чтобы установить драйвер базы данных mongodb.
Нет такой удачи. Я использую php5-fpm, поэтому, во-первых, я нашел, что мне также нужно было сделать php5enmod mongo
, но даже с этим я получаю сообщение об ошибке:
include(MongoClient.php): failed to open stream: No such file or directory
Вместо этого, чтобы установить, я должен сделать следующее (которое использует намного больше дискового пространства):
sudo apt-get install php5-dev make php-pear
sudo pecl install mongo
sudo echo "extension=mongo.so" | tee /etc/php5/mods-available/mongo.ini
Мой вопрос в том, почему недостаточно sudo apt-get install php5-mongo
? Это проблема с репо Ubuntu? Как я могу посмотреть в репозитории ubuntu и найти, какую версию он использует, или почему MongoClient.php
не включен. Я использую образ docker "ubuntu:saucy
" в качестве моей базы, и по умолчанию я думаю, что он включает юниверс.
Ответы
Ответ 1
В Ubuntu 14.04, sudo apt-get install php5-mongo
получается полностью работающее расширение PHP-монго. Поэтому я думаю, что в Ubuntu 13.10 есть проблема с упаковкой, которая вызывает проблему.
Решение: используйте Ubuntu 14.04 LTS вместо Ubuntu 13.10.
Но если вам нужно использовать Ubuntu 13.10, не используйте пакет php5-mongo
Ubuntu, вместо этого установите расширение mongo через pecl:
sudo apt-get install php5-dev make php-pear
sudo pecl install mongo
sudo echo "extension=mongo.so" | sudo tee /etc/php5/mods-available/mongo.ini
Ответ 2
Самый простой в установке драйвер mongoDB для php5 в ubuntu - это команда:
sudo apt-get install php5-mongo
Внимание, драйвер правильно установлен, но еще не загружен, поэтому он должен полностью перезапустить сервер, если использовать apache:
sudo service apache2 restart
Ответ 3
Существует также хороший способ установки mongo DB для PHP. У меня есть ubuntu 14.04LTS.
open synaptic package manager and search "mongo"
выберите эти пакеты для установки.
![диспетчер синаптических пакетов]()
Нажмите, чтобы установить пакеты.
Теперь перезапустите apache2 с помощью этой команды.
sudo service apache2 restart
Протестируйте манго
создайте файл PHP с именем mongo-test.php и вставьте этот код там.
<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
?>
проверить этот URL http://localhost/mongo-test.php
Ответ 4
Это похоже на проблему с упаковкой в Ubuntu.
Вы установили PHP5-fpm через apt-get
тоже? Похоже, существует разрыв между установкой PHP5 и файлом php.ini, который пытается обновить пакет php5-mongo.
Что касается ошибки include(MongoClient.php): failed to open stream
; это из-за вашего автозагрузчика.
Когда вы выполняете new MongoClient
, когда расширение не включено, оно попадает на вашу автозагрузку, которая пытается включить файл с именем <classname>.php