install rockmongo to ubuntu 16.04
August 10th, 2018 Posted in Linuxrockmongo的安装非常简单。
首先,原来的rockmongo(https://github.com/iwind/rockmongo)不支持PHP 7.0,所以不能直接用了。
所以要从这里下载支持支持PHP 7.0的rockmongo: https://github.com/krutpong/rockmongo-php7。
然后就是安装php-mongodb
php-mongodb
最后就是配置config.php。这个根据config.sample.php或者后面的注释简单配置一下就可以了。
重点要写的就是新的mongodb应该是加强了鉴权部分,如果不对权限进行配置的话,使用普通用户登陆,你将会在rockmongo上看到下面这个错误
Argument 1 passed to MongoDB::listCollections() must be of the type array, boolean given, called in /var/www/html/rockmongo/app/models/MDb.php on line 35
同时,在mongodb的日志中,你也可以看到类似下面的错误
Unauthorized not authorized on admin to execute command { getCmdLineOpts: 1 }
Unauthorized not authorized on dbname to execute command { eval: "function (){ return db.getCollectionNames(); }", args: [] }
应该是原来的mongodb允许任意用户列出所有的数据库或者表,但是现在已经不允许了。我们要通过下面命令来授权
首先,建立一个executeFunctions的角色
use admin;
db.createRole( { role: "executeFunctions", privileges: [ { resource: { anyResource: true }, actions: [ "anyAction" ] } ], roles: [] } );
然后将这个角色授权给你的用户
db.grantRolesToUser("username",[ { role: "executeFunctions", db: "admin" } ])
之后再登陆应该就没有错误了。
You must be logged in to post a comment.