Para instalá-lo, faça o seguinte:
sudo apt-get install php-mongodb
Estou executando o Ubuntu 16.04 LTS e quero usar o Mongodb com PHP. Por isso eu pensei que sudo apt-get install php5-mongo
(o que é suficiente para o Ubuntu 14.04 LTS) seria suficiente, mas eu estava errado. Estou recebendo um erro assim E: Unable to locate package php5-mongo
.
Acabei de atualizar para Ubuntu 16.04 LTS
e quero usar mongodb
com PHP
. A versão em execução do PHP é PHP Version 7.0.4-7ubuntu2
.
Então, o que posso fazer para resolver isso?
Para instalá-lo, faça o seguinte:
sudo apt-get install php-mongodb
Tenho certeza de que você encontrou uma solução até agora. No entanto, quero compartilhar como eu fiz:
sudo apt-get install php5.6-mongo
Estou usando o PHP versão 7.0 no Ubuntu 16.04. Eu estou dando uma informação detalhada para instalar o driver / cliente mongo. Primeiro instalei manualmente o mongodb e depois o driver mongodb-php para ele.
1) Instalando o mongo db. Digite os seguintes comandos:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
Para iniciar corretamente o Mongdb como um serviço, isto é, iniciar automaticamente o Mongodb quando o sistema for iniciado, siga os seguintes passos:
Crie o arquivo mongodb.service em / etc / systemd / system / digitando o comando:
$ sudo nano /etc/systemd/system/mongodb.service
Cole o seguinte conteúdo:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Em seguida, digite os seguintes comandos:
$ sudo systemctl start mongodb
$ sudo systemctl enable mongodb
2) Instalando o driver mongo-php:
$ sudo pecl install mongodb
Você também pode receber um erro: phpize not found. Phpize é um comando que é usado para criar um ambiente de compilação. Este erro pode aparecer no momento da instalação de qualquer extensão pecl. Para resolver este problema do comando phpize não encontrado, o usuário deve instalar o pacote php5-dev. Para instalá-lo, digite o comando:
$ sudo apt-get install php7.0-dev
Em seguida, no arquivo php.ini que está no diretório /etc/php/7.0/apache2, adicione a extensão mongo db:
$ sudo nano /etc/php/7.0/apache2/php.ini
Adicione a seguinte linha no arquivo:
extension = mongo.so;
(Você pode precisar especificar a localização exata do arquivo. No meu caso, o arquivo estava em /usr/lib/php/20151012/mongodb.so.)
Portanto, o mongo db é instalado junto com o driver.
3) Agora tenha em mente que as classes mongo-php foram alteradas. A maioria dos recursos disponíveis na rede fornece soluções usando classes antigas que são substituídas. Abaixo estão os links aos quais você pode se referir:
Aqui estão alguns comandos para operações básicas de banco de dados:
$mng = new MongoDB\Driver\Manager(); // Driver Object created
Para inserir dados no banco de dados:
$bulk = new MongoDB\Driver\BulkWrite;
$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];
$bulk->insert($doc);
$mng->executeBulkWrite('dbName.collectionName', $bulk);
Para buscar dados:
$query = new MongoDB\Driver\Query([]);
$rows = $mng->executeQuery("dbName.collectionName", $query);
foreach ($rows as $row)
{
echo "$row->data - $row->info\n";
}
ou para o php 7
sudo apt-get install php7.0-mongodb
Estou usando isso no meu Dockerfile:
echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
curl -OL https://www.dotdeb.org/dotdeb.gpg \
&& apt-key add dotdeb.gpg \
&& rm dotdeb.gpg
apt-get update -y \
&& apt-get install -y \
php7.0 \
php7.0-mongodb \