Yii2 – Mongodb的安装和配置 mongo

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

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

1.

sudo rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc
touch /etc/yum.repos.d/mongodb-org-3.2.repo
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

 

sudo yum install -y mongodb-org

2. vim /etc/selinux/config

SELINUX=disabled

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

sudo service mongod start

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

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

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-mongo 和 ext-mongodb

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

下面是安装ext-mongo的步骤:(fecshop不需要安装ext-mongo扩展,只需要安装ext-mongodb扩展,不过对于rock mongo这些图形化界面类似于phpmyadmin的web端,还是需要mongo扩展,因此,这两个扩展都安装一下吧。

4.1 安装ext-mongo

浏览器访问 http://pecl.php.net/get/mongo-1.6.14 下载 mongo-1.6.14.tgz 传到服务器

tar zxvf mongo-1.6.14.tgz
cd mongo-1.6.14  
/usr/local/php/bin/phpize  
 ./configure --with-php-config=/usr/local/php/bin/php-config  
make && make install

*php.ini中加入:

extension=mongo.so

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

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

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中加入:

extension=mongodb.so

 

重启php

5.安装yii2-mongodb的扩展

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

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

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

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

6.配置

'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。

发表评论

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