Debian8.0 搭建leanote
参考了官方wiki以及中文博客
https://github.com/leanote/leanote/wiki
http://leanote.leanote.com/post/Leanote-manual-project
1,下载 leanote 二进制版
2,安装 mongodb
3,导入初始数据
4,配置 leanote
5,启动mongodb
6, 运行 leanote
1 下载 leanote 二进制版
到http://leanote.org/#download下载最新二进制版。
假设将文件下载到 /home/user1 目录下, 解压文件从而在 /home/user1 目录下生成 leanote目录:
1 2 | $> cd /home/user1 $> tar -xzvf leanote-darwin-amd64.v2.0.bin.tar.gz |
2.1 部署 mongodb
到http://www.mongodb.org/downloads 下载相应系统的最新版安装包
下载到 /home/user1下, 直接解压即可:
1 2 | $> cd /home/user1 $> tar -xzvf mongodb-linux-x86_64-3.0.1.tgz/ |
为了快速使用mongodb命令, 可以配置环境变量。编辑 ~/.profile或/etc/profile 文件, 将mongodb/bin路径加入即可:
1 | $> sudo vim /etc/profile |
此处实例使用了vim文本编辑器,你可以使用自己熟悉的编辑器。
在/etc/profile中添加以下行,注意把用户名(user1)和相应的文件目录名(mongodb-linux-x86_64-3.0.1)替换成自己系统中的名称:
1 | export PATH=$PATH:/home/user1/mongodb-linux-x86_64-3.0.1/bin |
保存修改后,在终端运行以下命令使环境变量生效:
1 | $> source /etc/profile |
#------------------------------------------------------------------------------------
但是在使用过程中发现改变量只能在当前终端中生效,新开的终端或者系统重启后就要重新手动使之生效,这里有个办法:直接在用户目录下的.bashrc文件(隐藏文件)中添加你的环境变量就可以了
#------------------------------------------------------------------------------------
2.2 mongodb运行测试
先在/home/user1下新建一个data目录和logs目录存放mongodb数据和日志
1 2 | $> mkdir /home/user1/data $> mkdir /home/user1/logs |
用以下命令启动mongod:
1 | $> mongod --dbpath /home/user1/data |
显示如下内容则表示启动成功(启动后不要关闭终端,关闭就会停止运行)
-07-02T02:14:19.481-0400 [FileAllocator] done allocating datafile /home/user/data/local.ns, size: 16MB, took 0 secs -07-02T02:14:19.516-0400 [FileAllocator] allocating new datafile /home/user/data/local.0, filling with zeroes... -07-02T02:14:19.532-0400 [FileAllocator] done allocating datafile /home/user/data/local.0, size: 64MB, took 0.011 secs -07-02T02:14:19.597-0400 [initandlisten] build index on: local.startup_log properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.startup_log" } -07-02T02:14:19.597-0400 [initandlisten] added index to empty collection -07-02T02:14:19.597-0400 [initandlisten] command local.$cmd command: create { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyupdates:0 numYields:0 reslen:37 115ms -07-02T02:14:19.599-0400 [initandlisten] waiting for connections on port 27017
重新打开一个终端(因为刚刚启动mongodb占用了一个终端,所以这里要再开启一个终端), 键入mongo进入交互程序:
1 2 | $> mongo > show dbs #查看数据库列表 |
mongodb安装暂时到此为止, 下面为mongodb导入leanote初始数据
3.1 导入初始数据
leanote初始数据存放在 /home/user1/leanote/mongodb_backup/leanote_install_data中。
打开终端, 输入以下命令导入数据。注意mongodb v2 与 v3 版本导入数据的区别:
#mongodb v2 导入数据命令#
$> mongorestore -h localhost -d leanote --directoryperdb /home/user1/leanote/mongodb_backup/leanote_install_data/
#mongodb v3 导入数据命令#
$> mongorestore -h localhost -d leanote --dir /home/user1/leanote/mongodb_backup/leanote_install_data/
现在在mongodb中已经新建了leanote数据库, 可在之前打开的终端中用命令查看下leanote有多少张"表":
1 2 3 4 5 6 7 8 9 10 | $> mongo > show dbs # 查看数据库 leanote 0.203125GB local 0.078125GB > use leanote # 切换到leanote switched to db leanote > show collections # 查看表 files note_contents .... |
初始数据的users表中已有2个用户:
1 2 | user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码) user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用) |
建议修改邮箱(便于验证):
1 2 | > db.users.update({Username: 'admin' },{$ set :{Email: '001@test.com' }}); > db.users.update({Username: 'demo' },{$ set :{Email: '002@test.com' }}); |
3.2设置 MongoDB 安全访问
OK, 数据已导入, 下面要为 leanote 数据库新建一个用户, 像mysql一样有root用户, mongodb 初始是没有用户的, 这样很不安全, 所以要为leanote数据库新建一个用户来连接leanote数据库(注意, 并不是为leanote数据库的表users里新建用户, 而是新建一个连接 mongodb 的 leanote 数据库的用户, 类似 mysql 的 root 用户).
# 首先切换到admin数据库下
1 2 3 4 5 6 7 8 9 | > use admin switched to db admin # 添加一个用户root, 密码是abc123,对应数据库leanote,权限是dbowner > db.createUser({ user: 'root' , pwd: ' abc123' , roles: [{role: 'dbOwner' , db: 'leanote' }] }); |
# 测试下是否正确
1 2 3 | >db.auth( "root" , "abc123" ); 1 |
# 返回1表示正确
然后重启 mongodb 数据库(在之前运行界面直接ctrl+c即可关闭,然后重新启动mongodb)
4. 配置leanote
4.1 修改leanote/conf/app.conf中的db.username和db.password
1 2 3 4 5 6 7 8 | #---------------------------------------------------------------- # mongdb db.host=127.0.0.1 db.port=27017 db.dbname=leanote # required db.username=root # if not exists, please leave it blank db.password=abc123 # if not exists, please leave it blank #---------------------------------------------------------------- |
4.2 leanote的http端口默认是9000,可以改成80
1 2 3 | #-------------------------------------------------------------- http.port=80 #-------------------------------------------------------------- |
4.3 还需要修改app.secret ,请随意修改几个值,若不修改,会有安全问题!
1 2 3 4 | #----------------------------------------------------------------------- # You Must Change It !! About Security!! app.secret=V85ZzBeTfghthgjhgykjyegpd5g9y2aDM55VWxAH4r95jhglk4hykgk3x52qwjhogh0y # #----------------------------------------------------------------------- |
4.4 site.url 如果由外网访问的话,这里可以改成外网访问的网址。
5.mongo启动
5.1 命令加参数启动
1 | $> mongod --fork --dbpath /home/user1/data --logpath /home/user1/logs/mongodb.log --logappend --auth |
--fork守护进程的方式运行MongoDB,创建服务器进程 必须配合--logpath一起使用
--dbpath 指定数据库路径
--logpath 指定MongoDB日志文件,注意是指定文件不是目录
--auth 启用验证(必须)
最后--logappend表示使用追加的方式写日志,防止把之前的日志删除了
5.2调用配置文件启动(推荐)
在/home/user1下新建一个mongod.conf配置文件,加入以下参数
1 2 3 4 5 6 | dbpath=/home/user1/data logpath=/home/user1/logs/mongodb.log logappend= true auth= true fork= true port=27017 #默认27017,如果要修改mongo服务端口直接修改这个即可 |
引入配置文件启动mongod
1 | $> mongod -f /home/user1/mongod.conf |
启动后无日志显示,要关闭程序直接ctrl+c再回车即可。
6 运行 leanote
1 | $> bash /home/user1/leanote/bin/run.sh |
最后出现以下信息证明运行成功:
... TRACE 2013/06/06 15:01:27 watcher.go:72: Watching: /home/life/leanote/bin/src/github.com/leanote/leanote/conf/routes Go to /@tests to run the tests. Listening on :80...
恭喜你, 打开浏览器输入: http://localhost 体验leanote吧!
补充内容:
Mongodb开机启动
在/etc/rc.local文件末尾添加下面的代码
1 2 3 | #add mongodb service /home/user1/mongodb-linux-x86_64-3.0.1/bin/mongod --dbpath=/home/user1/data --logpath=/home/user1/logs/mongodb.log --logappend --auth --port=27017 |
leanote开机启动
直接在后面跟上命令&….&,eg:
1 | /home/user1/mongodb-linux-x86_64-3.0.1/bin/mongod --dbpath=/home/user1/data --logpath=/home/user1/logs/mongodb.log --logappend --auth --port=27017 & bash /home/user1/leanote/bin/run.sh & |
创建mongodb超级管理员
在未开启权限验证机制的状态下,使用“命令指示符”窗口键入"mongo"命令打开MongoDB的shell,进行一下操作:
1.使用“use”命令,切换到admin数据库,MongoDB用admin的system.users集合保存着用户信息。
1 | > use admin |
2.使用db.createUser方法来创建用户,具体的说明,请参考官网文档
1 2 3 4 5 6 7 | > db.createUser( ... { ... user: "sa" , ... pwd: "123" , ... roles: [ { role: "__system" , db: "admin" } ] ... } ... ) |
这样我们就创建了一个账号:sa,密码:123,拥有“__system”角色的权限,关于“__system”角色的具体说明,请参考官网文档
警告:不要把拥有“__system”角色的账号分配给系统程序使用
此处参考:http://www.cnblogs.com/sheepswallow/p/4868519.html
其他参考链接(有没有用上不知道,反正看是看了一下):
http://blog.csdn.net/jaylong35/article/details/7219410
http://blog.csdn.net/leftfist/article/details/40544415
最后比较重要的,关于防火墙Debian的防火墙设置(反正我就只开了443)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本