nodebb论坛安装备忘
准备
- 一台Linux服务器(以CentOS 7.4为例)
- 全程root操作
安装
安装nodejs
使用nvm
安装nodejs.目前nvm最新版是v0.33.8
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
然后将nvm
的目录信息写入shell的配置文件.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
重新载入配置文件.
source ~/.zshrc
安装nodejs.目前最新的稳定版是8.9.4
nvm install 8.9.4
把 nodejs
8.9.4
设置为默认版本.
nvm use 8.9.4
安装 pm2
npm install -g pm2
安装mongodb
创建/etc/yum.repos.d/mongodb-org-3.6.repo
文件,写入以下配置.
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
安装 mongodb 3.6
yum install -y mongodb-org
关闭selinux以及配置防火墙.这里懒得写了.然后设置开机启动.
systemctl enable mongod
启动mongodb
systemctl start mongod
配置mongodb
鉴于mongodb这个坑爹玩意默认不做鉴权,没有密码,需要设置一发密码保证数据安全.先连接到mongodb
mongo --host 127.0.0.1:27017
设置管理员密码
切换到admin
use admin
创建管理员(role:root 表示最高权限)
db.createUser({
user:"admin",
pwd:"这里写密码",
roles:[{
role:"root",
db:"admin"
}]
})
创建普通用户
首先创建nodebb的数据库
use nodebb
创建普通用户
db.createUser(
{
user: "nodebb",
pwd: "这里写密码",
roles: [
{
role: "readWrite",
db: "nodebb"
}
]
}
)
安装nodebb
克隆nodebb的代码到本地
git clone https://github.com/NodeBB/NodeBB.git
进入nodebb目录
cd nodebb
安装nodebb
./nodebb setup
根据脚本提示填入相关的信息.确认无误后启动测试.
./nodebb start
这时候,没什么问题的话,就可以直接启动了.访问地址为http://服务器ip:4567
开机启动nodebb
使用pm2守护nodebb进程.并且设置开机启动.
pm2 start app.js --watch
pm2 save
pm2 startup
安装nginx
yum install nginx
设置反向代理
以下是配置文件的反代部分.将流量转发至4567端口.
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
关于备份
以下是一个简易的备份脚本.定时执行即可.
backup_date=$(date +"%F") #获取日期
cd /root/backups #切换到当前用户家目录,你可以换成你的用户目录
/usr/bin/mongodump -u nodebb -p nodebb数据库密码 --authenticationDatabase=nodebb -d nodebb #导出数据库备份
mkdir -p dump/${backup_date}
tar -zcvf dump/${backup_date}/${backup_date}-database.tar.gz dump/nodebb --remove-files #将导出的备份压缩打包,并以日 期命名压缩包
tar -zcvf dump/${backup_date}/${backup_date}-file.tar.gz /data/wwwroot/NodeBB
find dump/ -mtime +3 | xargs rm -rf#检索三天前的备份压缩包,将之删除
echo $(date +"%F %H:%M:%S") Backup successfully ! >> log.backup #写入日志