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-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的安装包,我的安装步骤如下:
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
对于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)
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了
扩展都可以了,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.
您好,你跑脚本的php 可能和您 php -m 不是一个php
在linux输入 which php 查看一下是那个
然后在看一下你脚本里面用的是那个php。
我再查了下,php扩展换了,新的是这个:https://pecl.php.net/get/mongodb-1.2.0.tgz
换了就可以了
奥,不错,自己解决问题是最好的。
你是个好人
哈哈,你也是,你我多分享,繁荣Yii2生态