2016-03-10 15 views
9

Ho eseguito: composer require mongodb/mongodb. Ma mi ha dato il seguente errore:compositore non installa mongodb ubuntu

ha errore:

- mongodb/mongodb 1.0.1 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system. 
- mongodb/mongodb 1.0.0 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system. 
- Installation request for mongodb/mongodb ^1.0 -> satisfiable by mongodb/mongodb[1.0.0, 1.0.1]. 

ho provato: composer show -p

Poi mi ha dato:

...... 
ext-iconv   0   The iconv PHP extension 
ext-mcrypt   0   The mcrypt PHP extension 
ext-mhash   0   The mhash PHP extension 
ext-mongo   1.6.12 The mongo PHP extension 
ext-mysql   1.0  The mysql PHP extension 
ext-mysqli   0.1  The mysqli PHP extension 
...... 

Perché mi appare l'errore?

php -m

..... 
libxml 
mbstring 
mcrypt 
mhash 
mongo 
mysql 
mysqli 
openssl 
pcntl 
pcre 
PDO 
..... 

sto usando Ubuntu 14.04 LTS

risposta

9
  1. Installare il driver php $ sudo pecl install mongodb
  2. Creare il file di estensione $ sudo nano /etc/php5/mods-available/mongodb.ini e scrivere dentro: extension = MongoDB.così
  3. Creare un collegamento simbolico per il file $ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/apache2/conf.d/20-mongodb.ini
  4. Creare un altro link simbolico per il file $ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/cli/conf.d/20-mongodb.ini
  5. Riavviare apache o server utilizzato $ sudo service apache2 restart

Potrebbe essere necessario reinstallare jenssegers/MongoDB : $ composer require jenssegers/mongodb

Questo è un duplicate question

+0

Ho fatto tutti i passaggi ma non riesco ancora a connettermi a mongodb usando php. L'errore è 'PHP Errore fatale: Classe 'MongoDB \\ Client' non trovata in'. – void

+0

Stai lavorando su Ubuntu? – gras

+0

Sì, sto lavorando su Ubuntu – void

4

Sto correndo:

sudo apt-get install libpcre3-dev 

poi:

pecl install mongodb 

e aggiungere: extension=mongodb.so il basso linea di cli/php.ini

+0

grazie per aver dato una risposta più diretta .. mi ha risparmiato un po 'di capelli :) – jrran90

6

per una rapida e facile, basta fare:

  • sudo pecl install mongodb
  • sudo nano /etc/php5/apache2/php.ini, aggiungere (in basso o dovunque):

; mongodb extension=mongodb.so

  • sudo nano /etc/php5/cli/php.ini, aggiungere (in basso o dovunque):

; mongodb extension=mongodb.so

  • riavvio webserver per buona misura (non necessaria per CLI): sudo service apache2 restart
+0

Questa era la risposta corretta per me. Il compositore sembra utilizzare la versione CLI di php.ini. – Merlevede

0

Nel mio caso, il motivo è che mongo = mongodb, ho bisogno di installare il pacchetto mongodb :(!