说明
其实官方的教程中已经写得很清楚了,我写这个主要是为了记录一下我自己当时安装的过程,方便后续查询
官方文档请查阅:https://github.com/leanote/leanote/wiki
环境要求
- CentOS6.5+Nginx+MongoDB
- 最小配置:16G内存+4CPU+500G硬盘
- 推荐配置:32G内存+4CPU+1T硬盘
安装过程
- 安装 CentOS 6.5
最小化安装,分区如下,推荐基于LVM,后面维护比较方便:
- /boot 500M
- swap 8G
- / 20G
- /data 剩下所有
- 系统优化
关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/'/etc/s
精简启动项
- LANG=en
- for root in `chkconfig --list|grep 3:on|awk '{print 1}'`;do chkconfig --level 3 root off;done
- for root in crond network rsyslog sshd iptables;do chkconfig --level 3 $root on;done
- chkconfig --list|grep 3:on
安装软件
安装Nginx
- 安装Nginx的YUM源
- rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
- yum -y install nginx
安装其他软件
yum -y install vim wget curl lsof net-tools openssl
- 安装Mongodb
编辑mongodb的YUM源
- #vim /etc/yum.repos.d/mongodb-org-3.4.repo
- #添加入一下内容
- [mongodb-org-3.4]
- name=MongoDB Repository
- baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
- gpgcheck=1
- enabled=1
- gpgkey=https://www.mongodb.org/static/pgp/server-3.4.as
安装mongodb
yum -y install mongodb-org
- 自定义Mondodb数据库
修改数据库存储路径,将dbpath自定义成自己的data分区,首先需要创建目录并赋予权限
- mkdir -p /data/db
- chown -Rf mongod:mongod /data/db
- chmod -Rf 755 /data/db
更改MongoDB数据库存储路径,修改dbPath
- # vim /etc/mongod.conf
- ...
- systemLog:
- destination: file
- logAppend: true
- path: /var/log/mongodb/mongod.log
- # Where and how to store data.
- storage:
- dbPath: /data/db/ //我们需要指定库文件的存放目录
- journal:
- enabled: true
- # how the process runs
- processManagement:
- fork: true # fork and run in background
- pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
- # network interfaces
- net:
- port: 27017
- bindIp: 127.0.0.1
- ...
- 启动Mongodb并加入开机自启
- service mongod start
- chkconfig mongod on
- 部署蚂蚁笔记
下载蚂蚁笔记
- cd /data
- wget https://sourceforge.net/projects/leanote-bin/files/2.5/leanote-linux-amd64-v2.5.bin.tar.gz
解压文件
tar -zxvf leanote-linux-amd64-v2.5.bin.tar.gz
导入初始化数据库
mongorestore -h localhost -d leanote --dir /data/leanote/mongodb_backup/leanote_install_data/
给mongodb添加数据库用户
- mongo
- 首先切换到leanote数据库下
- > use leanote;
- 添加一个用户root, 密码是abc123,这个密码是可以自定义的
- > db.createUser({
- user: 'root',
- pwd: 'abc123',
- roles: [{role: 'dbOwner', db: 'leanote'}]
- });
- 测试下是否正确
- > db.auth("root", "abc123");
- 1
- 返回1表示正确
修改app.conf
- # vim /data/leanote/conf/app.conf
- ...
- db.host=localhost
- db.port=27017
- db.dbname=leanote
- db.username=root
- db.password=abc123
- ...
重启数据库服务
service mongod restart
尝试运行
bash /data/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 :9000
- ...
- 尝试访问,记得先
关闭下防火墙
恭喜你, 打开浏览器输入: http://localhost:9000
体验leanote
吧!
- 配置支持https
创建证书
- 首先,创建证书和私钥的目录
- # mkdir -p /etc/nginx/cert
- # cd /etc/nginx/cert
- 创建服务器私钥,命令会让你输入一个口令:
- # openssl genrsa -des3 -out nginx.key 2048
- 创建签名请求的证书(CSR):
- # openssl req -new -key nginx.key -out nginx.csr
- 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
- # cp nginx.key nginx.key.org
- # openssl rsa -in nginx.key.org -out nginx.key
- 最后标记证书使用上述私钥和CSR:
- # openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt
配置Nginx
配置nginx.conf
- # vim /etc/nginx/nginx.conf 添加入一下内容
- #本配置只有http部分, 不全, 详细配置请百度Nginx相关知识
- http {
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- upstream note.cloud.top {
- server localhost:9000;
- }
-
- # http
- server
- {
- listen 80;
- server_name note.cloud.top;
-
- # 强制https
- # 如果不需要, 请注释这一行rewrite
- rewrite ^/(.*) https://note.cloud.top/$1 permanent;
-
- location / {
- proxy_pass http://note.cloud.top;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
-
- # https
- server
- {
- listen 443 ssl;
- server_name note.cloud.top;
- ssl_certificate /etc/nginx/cert/nginx.crt; # 修改路径, 到nginx.crt, 下同
- ssl_certificate_key /etc/nginx/cert/nginx.key;
- location / {
- proxy_pass http://note.cloud.top;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
- }
启动Nginx
- service nginx start
- chkconfig nginx on
- 笔记系统开机自启
注意
官方文档并没有给出这项设置,其实最简单的办法就是向rc.local文件中添加一条命令,开机自动执行,但是这里推荐使用supervisor服务进行管理,supervisor的详细介绍见:http://www.supervisord.org/**
方法1:
- # vim /etc/rc.d/rc.local
- 添加下面的内容,这样的化开机后就不会有影响
- nohup bash /data/leanote/bin/run.sh &
方法2-推荐使用
使用supervisor服务进行管理的优点是服务异常后自动重启,可靠性较高
- 安装supervisor服务
yum install epel-release -y && yum install supervisor -y
- 配置supervisor
- vim /etc/supervisord.conf 在文件末尾加入以下内容
- ···
- [program:webvirtmgr]
- command=bash /data/leanote/bin/run.sh
- autostart=true
- autorestart=true
- logfile=/dev/null
- log_stderr=true
- user=root
- ···
logfile我们定义到磁盘黑洞中,就不用占用磁盘的空间,同时减少部分磁盘IO开销
- 启动supervisor服务并添加到开机自启中
# chkconfig supervisord on && service supervisord start
- 防火墙配置
- #清空配置
- iptables -F
- iptables -X
- #如果是远程ssh连接配置务必先执行这条命令,否则会断开ssh连接,无法进行后续工作
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- iptables -P INPUT DROP
- iptables -P OUTPUT ACCEPT
- iptables -P FORWARD DROP
- #允许80、443、9000、53(DNS)端口
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
- iptables -A INPUT -p tcp --sport 53 -j ACCEPT
- iptables -A INPUT -p udp --sport 53 -j ACCEPT
- #允许ping
- iptables -A INPUT -p icmp -j ACCEPT
- #允许loopback!(不然会导致DNS无法正常关闭等问题)
- iptables -A INPUT -i lo -p all -j ACCEPT
- #丢弃坏的TCP包
- iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
- #处理IP碎片数量,防止攻击,允许每秒100个
- iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
- #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
- iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
- service iptables save
- service iptables restart
- 其它配置
修改leanote运行端口
比如想以8080端口启动.修改conf/app.conf:
- http.port=8080
- site.url=http://note.cloud.top:8080
请重启Leanote, 使用http://note.cloud.top:8080
绑定域名
提示:
site.url其实是自己可以自定义的,因为在浏览器中我们登录注销后url会自动变成这个语句设置的值,所以务必设置正确。
- site.url=http://note.cloud.top
- 或
- site.url=https://note.cloud.top
- 请重启Leanote, 使用http://note.cloud.top 或者 https:note.cloud.top 进行访问