353 lines
8 KiB
Markdown
353 lines
8 KiB
Markdown
leanote安装配置
|
||
环境:
|
||
|
||
Centos 6.5 x86_64
|
||
|
||
所需软件:
|
||
|
||
go1.8.linux-amd64.tar.gz
|
||
|
||
mongodb-linux-x86_64-rhel62-3.4.4.tgz
|
||
|
||
leanote-all-master.zip
|
||
|
||
nginx-1.12.1.tar.gz
|
||
|
||
setuptools-36.2.7.zip
|
||
|
||
supervisor-3.3.3.tar.gz
|
||
|
||
|
||
|
||
一、安装go
|
||
|
||
1、解压
|
||
```
|
||
tar zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
|
||
```
|
||
2、新建目录mygo,放go的模块及编译后的文件
|
||
```
|
||
mkdir /usr/local/mygo
|
||
```
|
||
3、配置环境变量
|
||
```
|
||
vi /etc/profile
|
||
添加以下内容:
|
||
|
||
GOROOT=/usr/local/go
|
||
GOPATH=/usr/local/mygo
|
||
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
|
||
export GOROOT GOPATH PATH
|
||
```
|
||
使环境变量生效
|
||
```
|
||
source /etc/profile
|
||
```
|
||
4、验证
|
||
```
|
||
go version
|
||
```
|
||
|
||
二、安装revel
|
||
|
||
1、 解压leanote-all-master.zip
|
||
```
|
||
unzip leanote-all-master.zip
|
||
```
|
||
2、 把src文件放到/usr/local/mygo中
|
||
```
|
||
cp –rf leanote-all-master/src /usr/local/mygo/
|
||
```
|
||
3、 安装
|
||
```
|
||
cd /usr/local/mygo/src && go install github.com/revel/cmd/revel
|
||
```
|
||
|
||
三、安装mongodb
|
||
|
||
1、解压并重命名解压目录
|
||
```
|
||
tar zxvf mongodb-linux-x86_64-rhel62-3.4.4.tgz -C /usr/local
|
||
mv /usr/local/mongodb-linux-x86_64-rhel62-3.4.4 /usr/local/mongodb
|
||
```
|
||
2、添加环境变量
|
||
```
|
||
vi /etc/profile
|
||
```
|
||
当前的环境配置如下:
|
||
```
|
||
GOROOT=/usr/local/go
|
||
GOPATH=/usr/local/mygo
|
||
MONGO=/usr/local/mongodb
|
||
PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$MONGO/bin
|
||
export GOROOT GOPATH PATH
|
||
```
|
||
使环境变量生效
|
||
```
|
||
source /etc/profile
|
||
```
|
||
3、新建数据存放目录
|
||
```
|
||
mkdir /usr/local/data
|
||
```
|
||
4、启动数据库
|
||
```
|
||
mongod --dbpath /usr/local/data
|
||
```
|
||
5、导入数据
|
||
```
|
||
mongorestore -h localhost -d leanote –dir /usr/local/mygo/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data
|
||
```
|
||
|
||
|
||
四、配置leanote
|
||
|
||
修改/usr/local/mygo/src/github.com/leanote/leanote/conf/app.conf
|
||
```
|
||
http.port=9000修改为http.port=8080
|
||
site.url=http://localhost:9000修改为site.url=http://10.188.12.133:8080
|
||
更改app.secret后面的字符串,总长度保持不变
|
||
```
|
||
|
||
|
||
五、启动leanote
|
||
```
|
||
revel run github.com/leanote/leanote
|
||
```
|
||
六、访问
|
||
|
||
浏览器地址栏输入http://10.188.12.133:8080,登录,默认用户名admin,密码abc123
|
||
|
||
现在密码:zeroc.net
|
||
|
||
|
||
|
||
|
||
扩展
|
||
|
||
(一)为leanote配置数据库用户密码
|
||
|
||
1、修改/usr/local/mygo/src/github.com/leanote/leanote/conf/app.conf
|
||
```
|
||
db.dbname=修改为db.username=ZeroC
|
||
db.password修改为db.password=toor
|
||
```
|
||
2、启动mongodb
|
||
```
|
||
mongod --dbpath /usr/local/data
|
||
```
|
||
3、登录mongodb(另一个终端中)
|
||
```
|
||
mongo
|
||
```
|
||
4、添加ZeroC用户(>开头的为命令,##为注释,#为shell命令,其他为返回值)
|
||
```
|
||
##切换到leanote数据库
|
||
>use leanote
|
||
switched to db leanote
|
||
##添加ZeroC用户,密码为toor,角色为readWrite
|
||
>db.createUser({user:"ZeroC",pwd:"toor",roles:["readWrite"]});
|
||
Successfully added user: { "user" : "ZeroC", "roles" : [ "readWrite" ] }
|
||
##停止mongo
|
||
>use admin;
|
||
>db.shutdownServer()
|
||
>exit
|
||
```
|
||
启动mongodb
|
||
```
|
||
mongod --dbpath /usr/local/data --auth
|
||
```
|
||
登录mongodb,并切换到leanote数据库
|
||
```
|
||
##此时查看数据表会失败
|
||
>show collections;
|
||
2017-08-02T21:46:56.166+0800 E QUERY [thread1] Error: listCollections failed: {
|
||
"ok" : 0,
|
||
"errmsg" : "not authorized on leanote to execute command { listCollections: 1.0, filter: {} }",
|
||
"code" : 13,
|
||
"codeName" : "Unauthorized"
|
||
} :
|
||
_getErrorWithCode@src/mongo/shell/utils.js:25:13
|
||
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:805:1
|
||
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:817:19
|
||
DB.prototype.getCollectionNames@src/mongo/shell/db.js:828:16
|
||
shellHelper.show@src/mongo/shell/utils.js:762:9
|
||
shellHelper@src/mongo/shell/utils.js:659:15
|
||
@(shellhelp2):1:1
|
||
##认证
|
||
> db.auth("ZeroC","toor");
|
||
1
|
||
##再看表
|
||
>show collections;
|
||
albums
|
||
attachs
|
||
blog_comments
|
||
blog_likes
|
||
blog_singles
|
||
……
|
||
```
|
||
5、启动leanote
|
||
```
|
||
revel run github.com/leanote/leanote
|
||
```
|
||
|
||
|
||
(二)修改admin的邮箱
|
||
|
||
1、登录mongodb
|
||
```
|
||
mongo
|
||
```
|
||
2、更新数据
|
||
```
|
||
##切换到leanote数据库
|
||
>use leanote;
|
||
switched to db leanote
|
||
##认证
|
||
> db.auth("ZeroC","toor");
|
||
1
|
||
##查看数据
|
||
>db.users.find({Username:"admin"})
|
||
##修改邮箱
|
||
>db.users.update({Username:"admin"},{$set:{Email:"vrocwang@gmail.com"}})
|
||
```
|
||
|
||
(三)以后台方式启动mongodb
|
||
|
||
说明:如果已经启动过mongodb,那么需要清理掉数据文件,不然启动会报错
|
||
|
||
为方便操作,把启动选项放进配置文件中
|
||
|
||
1、新建conf,log目录
|
||
```
|
||
mkdir /usr/local/mongodb/{conf,log}
|
||
```
|
||
2、添加配置文件
|
||
```
|
||
cat /usr/local/mongodb/conf/mongodb.conf
|
||
dbpath=/usr/local/data
|
||
logpath=/usr/local/mongodb/log/log
|
||
pidfilepath=/usr/local/mongodb/conf/mongo.pid
|
||
## 为每一个数据库按照数据库名建立文件夹存放
|
||
directoryperdb=true
|
||
## 以追加的方式记录日志
|
||
logappend=true
|
||
## 绑定ip
|
||
bind_ip=127.0.0.1
|
||
## 端口
|
||
port=27017
|
||
## 日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
|
||
oplogSize=1000
|
||
## 后台运行
|
||
fork=true
|
||
## 不预先分配存储
|
||
noprealloc=true
|
||
## 认证方式启动
|
||
auth=true
|
||
```
|
||
3、启动
|
||
```
|
||
mongod -f /usr/local/mongodb/conf/mongodb.conf
|
||
```
|
||
|
||
(四)为admin添加用户
|
||
|
||
注意:此处不要以认证方式启动,不然,无法操作admin数据库,因为mongodb默认没有管理员用户,无法认证
|
||
|
||
1、登录mongodb
|
||
```
|
||
mongo
|
||
```
|
||
2、切换到admin库
|
||
```
|
||
>use admin;
|
||
```
|
||
3、查看admin库中的表
|
||
```
|
||
> show collections;
|
||
system.users
|
||
system.version
|
||
```
|
||
4、查看用户(默认为空)
|
||
```
|
||
> db.system.users.find()
|
||
```
|
||
5、添加数据库管理员
|
||
```
|
||
>db.createUser({user:"admin",pwd:"toor",roles:["readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin"]})
|
||
```
|
||
|
||
(五)用supervisor管理leanote,使leanote后台运行
|
||
|
||
supervisor是python的一个模块,需要先安装setuptools
|
||
|
||
1、解压setuptools,并安装
|
||
```
|
||
unzip setuptools-36.2.7.zip
|
||
cd setuptools-36.2.7
|
||
python setup.py install
|
||
```
|
||
2、解压supervisor,并安装
|
||
```
|
||
tar zxvf supervisor-3.3.3.tar.gz
|
||
cd supervisor-3.3.3
|
||
python setup.py install
|
||
```
|
||
3、配置supervisor (##开头的行为说明)
|
||
|
||
①新建目录
|
||
```
|
||
mkdir -p /usr/local/supervisor/logs
|
||
```
|
||
②生成配置文件,echo_supervisord_conf 在/usr/bin中
|
||
```
|
||
echo_supervisord_conf > /usr/local/supervisor/supervisord.conf
|
||
```
|
||
③修改配置文件如下
|
||
```
|
||
[root@ZeroC supervisor]# sed -e "/^;/d" -e "/^$/d" supervisord.conf
|
||
[unix_http_server]
|
||
file=/usr/local/supervisor/supervisor.sock ; the path to the socket file
|
||
chmod=0700 ; socket file mode (default 0700)
|
||
[supervisord]
|
||
logfile=/usr/local/supervisor/logs/supervisord.log ; main log file; default $CWD/supervisord.log
|
||
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
|
||
logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
|
||
loglevel=info ; log level; default info; others: debug,warn,trace
|
||
pidfile=/usr/local/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid
|
||
nodaemon=false ; start in foreground if true; default false
|
||
minfds=1024 ; min. avail startup file descriptors; default 1024
|
||
minprocs=200 ; min. avail process descriptors;default 200
|
||
[rpcinterface:supervisor]
|
||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||
[supervisorctl]
|
||
serverurl=unix:///usr/local/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
|
||
[include]
|
||
files = /usr/local/supervisor/*.ini
|
||
④添加leanote的配置文件/usr/local/supervisor/leanote.ini,内容如下
|
||
|
||
[program:leanote]
|
||
command=/usr/local/mygo/bin/revel run github.com/leanote/leanote
|
||
directory=/usr/local/mygo/src
|
||
autorstart=true
|
||
redirect_stderr=true
|
||
stdout_logfile=/usr/local/supervisor/logs/leanote.log
|
||
user=root
|
||
priority=1
|
||
```
|
||
⑤启动supervisor
|
||
```
|
||
supervisord -c /usr/local/supervisor/supervisord.conf
|
||
supervisorctl start all
|
||
```
|
||
|
||
(六)导出leanote数据文件
|
||
```
|
||
mongodump -h 127.0.0.1 -u ZeroC -p toor -d leanote -o /root/data
|
||
```
|
||
注意:如果用auth模式启动,无备份权限无法备份数据库
|
||
|
||
报错如下:
|
||
```
|
||
2017-11-30T11:15:26.732+0800 Failed: error getting database names: not authorized on admin to execute command { listDatabases: 1 }
|
||
```
|