2016-03-10 103 views
9

我跑了:composer require mongodb/mongodb。但它給了我下面的錯誤:作曲家不會安裝mongodb ubuntu

已經錯誤:

- 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]. 

我想:composer show -p

然後遞給我:

...... 
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 
...... 

爲什麼會出現錯誤?

php -m

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

我使用Ubuntu 14.04 LTS

回答

9
  1. 線安裝PHP驅動程序$ sudo pecl install mongodb
  2. 創建擴展文件$ sudo nano /etc/php5/mods-available/mongodb.ini和裏面寫:延長= MongoDB的。所以
  3. 創建符號鏈接,此文件$ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/apache2/conf.d/20-mongodb.ini
  4. 創建其他符號鏈接文件$ sudo ln -sv /etc/php5/mods-available/mongodb.ini /etc/php5/cli/conf.d/20-mongodb.ini
  5. 重啓Apache或使用$ sudo service apache2 restart

服務器可能有必要重新安裝jenssegers/mongodb的:$ composer require jenssegers/mongodb

這是一個duplicate question

+0

我做了所有步驟,但仍然無法連接使用PHP的MongoDB。錯誤是'PHP致命錯誤:Class'MongoDB \\ Client'在'找不到'。 – void

+0

你在使用Ubuntu嗎? – gras

+0

是的我正在使用Ubuntu – void

4

我正在運行:

sudo apt-get install libpcre3-dev 

則:

pecl install mongodb 

,並添加:extension=mongodb.so至底部的cli/php.ini

+0

感謝給一個更直接的回答..節省了我一些頭髮:) – jrran90

6

快速和容易的,只是做:

  • sudo pecl install mongodb
  • sudo nano /etc/php5/apache2/php.ini,添加(在底部或其它地方):

; mongodb extension=mongodb.so

  • sudo nano /etc/php5/cli/php.ini,添加(在底部或無論何地):

; mongodb extension=mongodb.so

  • 重啓Web服務器的好辦法(不需要CLI):sudo service apache2 restart
+0

這對我來說是正確的答案。作曲家似乎使用了php.ini的CLI版本。 – Merlevede

0

在我的情況,原因是mongo = mongodb,我需要安裝mongodb包 :(!