Yii2 – Mongodb的安装和配置 mongo

mongodb官方安装文档:https://www.mongodb.com/download-center

下面是centos环境安装mongodb3.2的步骤

1.

  1. sudo rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc
sudo rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc
  1. touch /etc/yum.repos.d/mongodb-org-3.2.repo
touch /etc/yum.repos.d/mongodb-org-3.2.repo
  1. vim /etc/yum.repos.d/mongodb-org-3.2.repo
  2. 添加内容如下:
  3. [mongodb-org-3.2]
  4. name=MongoDB Repository
  5. baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
  6. gpgcheck=1
  7. enabled=1
vim /etc/yum.repos.d/mongodb-org-3.2.repo  
添加内容如下:  
[mongodb-org-3.2]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/  
gpgcheck=1  
enabled=1

 

  1. sudo yum install -y mongodb-org
sudo yum install -y mongodb-org

2. vim /etc/selinux/config

  1. SELINUX=disabled
SELINUX=disabled

3. mongodb 安装完成,可以启动mongodb了

  1. sudo service mongod start
sudo service mongod start

当然,我上面配置的是一个简单的mongodb,没有配置复制集和分片

安全ip连接设置:vim /etc/mongod.conf

  1. net:
  2. port: 27017
  3. bindIp: 127.0.0.1
net:
  port: 27017
  bindIp: 127.0.0.1

port代表开放的访问端口,bindIp这个是一个安全ip配置,允许那些ip连接mongodb,如果设置成bind_ip = 0.0.0.0,代表任意ip,建议只写连接的ip,如果是本机,就填写127.0.0.1即可。

这个是一个安全设置,线上系统一定要注意,iptables设置,只允许部分ip访问该端口,其他的pass掉,而且mongodb也要设置。

另外,对于线上系统,最好是使用账号密码的方式连接,进一步增强安全性。

 

4.安装mongodb的php扩展 ext-mongodb

注意:Fecshop 支持php7,需要安装ext-mongodb扩展,注意,这是两个扩展,ext-mongo扩展只能在php5中使用, ext-mongodb可以在php5和php7中使用,php7不能使用ext-mongo扩展。

 

4.1安装php的ext-mongodb扩展(兼容php7,fecshop需要安装ext-mongodb扩展,而不是ext-mongo扩展,ext-mongo只能在php5中使用,ext-mongodb可以在php5,php7,VVMH中使用,这里只安装ext-mongodb扩展

https://pecl.php.net/package/mongodb下载mongodb的安装包,我的安装步骤如下:

  1. wget https://pecl.php.net/get/mongodb-1.2.5.tgz
  2. tar zxvf mongodb-1.2.5.tgz
  3. cd mongodb-1.2.5
  4. /usr/local/php/bin/phpize
  5. ./configure --with-php-config=/usr/local/php/bin/php-config
  6. make && make install
wget https://pecl.php.net/get/mongodb-1.2.5.tgz
tar zxvf mongodb-1.2.5.tgz
cd mongodb-1.2.5
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

*php.ini中加入:

  1. extension=mongodb.so
extension=mongodb.so

 

重启php

对于mongodb的GUI,不要使用rockmongo了,现在有更好的工具:

你可以使用 RoboMongo GUI工具连接mongodb,下载地址 , 因为mongodb默认设置无密码,只允许127.0.0.1登录, 因此,可以使用RoboMongo的ssh方式登录,填写您的主机的ssh信息即可登录。(robomongo支持很多方式连接mongodb)

5.安装yii2-mongodb的扩展(如果您在安装fecshop,下面的步骤不需要操作)

插件地址:https://github.com/yiisoft/yii2-mongodb

在yii2的根目录下面运行:(已经安装composer)

  1. composer require --prefer-dist yiisoft/yii2-mongodb
composer require --prefer-dist yiisoft/yii2-mongodb

完成后,mongodb的yii2扩展安装完成

6.配置

  1. 'mongodb' => [
  2. 'class' => 'yii\mongodb\Connection',
  3. //'class' => 'backend\models\core\mongodb\Mconnection',
  4. # 有账户的配置
  5. //'dsn' => 'mongodb://demofancyecommerce:fdaVBDFS#fdfdtyg423DF23#$@localhost:27017/demofancyecommerce',
  6. # 无账户的配置
  7. 'dsn' => 'mongodb://127.0.0.1:27017/market',
  8. //'dsn' => 'mongodb://10.10.10.252:10001/erp,mongodb://10.10.10.252:10002/erp,mongodb://10.10.10.252:10004/erp?replicaSet=terry&readPreference=primaryPreferred',
  9. ],
'mongodb' => [
            'class' => 'yii\mongodb\Connection',
      //'class' => 'backend\models\core\mongodb\Mconnection',
      # 有账户的配置
            //'dsn' => 'mongodb://demofancyecommerce:fdaVBDFS#fdfdtyg423DF23#$@localhost:27017/demofancyecommerce',
      # 无账户的配置
      'dsn' => 'mongodb://127.0.0.1:27017/market',
      //'dsn' => 'mongodb://10.10.10.252:10001/erp,mongodb://10.10.10.252:10002/erp,mongodb://10.10.10.252:10004/erp?replicaSet=terry&readPreference=primaryPreferred',
      
        ],

然后就可以在yii2中使用mongodb了

《Yii2 – Mongodb的安装和配置 mongo》有6个想法

  1. 扩展都可以了,php -m 可以看到mongo, 但是composer的时候依然说我没装mongo的PHP扩展:
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    – yiisoft/yii2-mongodb 2.1.x-dev requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    – yiisoft/yii2-mongodb 2.1.2 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    – yiisoft/yii2-mongodb 2.1.1 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    – yiisoft/yii2-mongodb 2.1.0 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    – Installation request for yiisoft/yii2-mongodb ^2.1 -> satisfiable by yiisoft/yii2-mongodb[2.1.0, 2.1.1, 2.1.2, 2.1.x-dev].

    To enable extensions, verify that they are enabled in those .ini files:
    – /usr/local/php/etc/php.ini
    You can also run `php –ini` inside terminal to see which files are used by PHP in CLI mode.

    1. 您好,你跑脚本的php 可能和您 php -m 不是一个php
      在linux输入 which php 查看一下是那个
      然后在看一下你脚本里面用的是那个php。

admin进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注