【问题标题】:composer does not install mongodb ubuntu作曲家不安装 mongodb ubuntu
【发布时间】:2016-06-24 19:39:06
【问题描述】:

我跑了:composer require mongodb/mongodb。但它给了我以下错误:

有错误:

- 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

【问题讨论】:

    标签: mongodb ubuntu composer-php


    【解决方案1】:

    我跑了:

    sudo apt-get install libpcre3-dev
    

    然后:

    pecl install mongodb
    

    并添加:extension=mongodb.socli/php.ini 的底行

    【讨论】:

    • 感谢您提供更直接的答案.. 为我节省了一些头发:)
    【解决方案2】:
    1. 安装php驱动$ sudo pecl install mongodb
    2. 创建扩展文件$ sudo nano /etc/php/*version*/mods-available/mongodb.ini并在里面写:extension=mongodb.so
    3. 为此文件创建符号链接$ sudo ln -sv /etc/php/*version*/mods-available/mongodb.ini /etc/php/*version*/apache2/conf.d/20-mongodb.ini
    4. 为此文件创建另一个符号链接$ sudo ln -sv /etc/php/*version*/mods-available/mongodb.ini /etc/php/*version*/cli/conf.d/20-mongodb.ini
    5. 重启apache或使用的服务器$ sudo service apache2 restart

    可能需要重新安装 jenssegers/mongodb:$ composer require jenssegers/mongodb

    【讨论】:

    • 我完成了所有步骤,但仍然无法使用 php 连接到 mongodb。错误是PHP Fatal error: Class 'MongoDB\\Client' not found in
    • 这意味着扩展没有正确加载。检查php是否首先加载扩展,尝试使用'$ php -i'命令并检查mongo扩展:'MongoDB Support => enabled Version => 1.6.10 Streams Support => enabled SSL Support => enabled'跨度>
    • 完美适用于 Ubuntu 16.4
    • 我只做了这一步:在:/etc/php/7.1/cli/conf.d/20-mongodb.ini 中创建文件
    【解决方案3】:

    为了快速简便,只需这样做:

    • 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

    • 重启网络服务器以获得良好的效果(cli 不需要):sudo service apache2 restart

    【讨论】:

    • 这对我来说是正确的答案。 Composer 似乎使用的是 php.ini 的 CLI 版本。
    猜你喜欢
    • 2018-05-16
    • 2017-03-13
    • 2018-10-21
    • 2013-07-30
    • 2012-11-29
    • 2017-05-22
    • 2015-02-17
    • 2016-09-04
    • 2021-08-07
    相关资源
    最近更新 更多