Como instalar a extensão PHP Mongodb no Ubuntu 16.04 LTS

27

Estou executando o Ubuntu 16.04 LTS e quero usar o Mongodb com PHP. Por isso eu tentei

sudo apt-get install php5-mongo

o que é suficiente para o Ubuntu 14.04 LTS seria suficiente, mas eu estava errado. Estou recebendo mensagem de erro como:

E: Unable to locate package php5-mongo

Acabei de atualizar o sistema operacional da máquina Ubuntu 16.04 LTSe queria usá mongodb-la PHP 7.0.4.

Então, o que posso fazer para resolver isso?

Vikash Kumar
fonte
Eu já havia tentado isso sudo apt-get install php7-mongotambém, mas não tenho qualquer resultado positivo
Vikash Kumar
se você quiser com php5-mongo, em seguida, tentar estesudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur
@bhordupur este repositório parece ser inválido. Além disso, você já pensou em fazer disso uma resposta? W: The repository 'http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
Vivek Kodira
1
@VivekKodira Não, eu não coloquei isso como resposta, porque o Vicky R estava usando o Ubuntu 16.04 LTS onde, por padrão, o php7.x foi instalado durante a execução do php-mongodb. Comentei que, devido a ele estar entre 14 e 16 anos, ainda assim ele ainda podia usar o que eu comentei acima. Por isso não coloquei meu comentário como resposta.
Bhordupur

Respostas:

52

Para instalar a extensão mongodb, faça:

sudo apt-get install php-mongodb
Videonauth
fonte
2
Como esta é a resposta aceita para php7? Este comando no ubuntu 16.04 instalará o php5.6 mongo no?
Ligemer 22/02
2
O @Ligemer 16.04 possui o php7.0 como PHP padrão, portanto, todos os meta-pacotes instalam a versão 7.0 dos mencionados.
Videonauth
ahh sim, obrigado pelo lembrete, eu tenho o php5.6 instalado também de outro ppa e não são os mesmos pacotes que me levaram ao erro. Alguma documentação do mongo diz para usar a extensão pecl, que foi o que acabei usando.
Ligemer 22/02
1
Não esqueça de reiniciar o servidor Apache depois de instalar o pacote.
TheKarateKid
Posso usar o mesmo comando para o AWS Linux Ec2?
151291
8

Tenho certeza que você encontrou uma solução até agora. No entanto, quero compartilhar como fiz isso:

chickenchilli
fonte
6

Estou usando o php versão 7.0 no ubuntu 16.04. Estou fornecendo informações detalhadas para a instalação do driver / cliente mongo. Primeiro instalei manualmente o mongodb e depois o driver mongodb-php.

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, ou seja, iniciar automaticamente o Mongodb quando o sistema iniciar, siga as seguintes etapas:

Crie o arquivo mongodb.service em / etc / systemd / system / digitando o comando:

$ sudo nano /etc/systemd/system/mongodb.service

Cole o seguinte conteúdo nele:

[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, insira os seguintes comandos:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) Instalando o driver mongo-php:

$ sudo pecl install mongodb

Além disso, você pode receber um erro: phpize não encontrado. Phpize é um comando usado para criar um ambiente de construção. Este erro pode aparecer no momento da instalação de qualquer extensão pecl. Para resolver esse problema do comando phpize não encontrado, o usuário precisa 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:

extensão = mongo.so;

(Pode ser necessário especificar o local exato do arquivo. No meu caso, o arquivo estava em /usr/lib/php/20151012/mongodb.so.)

Portanto, o mongo db é instalado junto com seu driver.

3) Agora lembre-se de que as classes do 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 que você pode consultar:

http://php.net/manual/en/set.mongodb.php

http://zetcode.com/db/mongodbphp/

Aqui estão alguns comandos para operações básicas do 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";
    }
Pransh Tiwari
fonte
1

ou para php 7

sudo apt-get install php7.0-mongodb
Albert s
fonte
temos instalado mongodb mas a obtenção de erro jumpset carregamento no navegador, como: Erro: extensão O MongoDB PECL não foi instalado ou habilitado
m shivashankar
0

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 \
MauricioOtta
fonte