Самый простой способ установить расширение PHP Mongodb в Ubuntu 13.10 (дерзкий)?
Я использую Ubuntu 13.10 (дерзкая саламандра), и я надеялся, что 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
не включен. Я использую изображение докера "ubuntu:saucy
" в качестве своей базы, и я думаю, что по умолчанию оно включает вселенную.
4 answers
В Ubuntu 14.04 sudo apt-get install php5-mongo
приводит к полностью работающему расширению PHP mongo. Поэтому я предполагаю, что в 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
Проще всего установить драйвер MongoDB для php5 в ubuntu с помощью команды:
sudo apt-get install php5-mongo
Внимание, драйвер установлен правильно, но еще не загружен, поэтому следует полностью перезапустить сервер, если при использовании apache следует выполнить:
sudo service apache2 restart
Также есть хороший способ установить базу данных mongo для PHP. У меня ubuntu 14.04 LTS.
open synaptic package manager and search "mongo"
Выберите эти пакеты для установки.
- php-орда-монго
- php-монго
Нажмите кнопку Применить, чтобы установить пакеты.
Теперь перезапустите 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
Похоже, это проблема упаковки в Ubuntu.
Вы тоже установили PHP5-fpm через apt-get
? Похоже, существует разрыв между тем, как вы установили PHP5, и тем, какой файл php.ini пытается обновить пакет php5-mongo.
Что касается ошибки include(MongoClient.php): failed to open stream
; это из-за вашего автозагрузчика.
Когда вы делаете это new MongoClient
, когда расширение не включено, оно попадает в вашу автозагрузку, которая пытается включить файл с именем <classname>.php