nodebb是一个基于nodejs的社区论坛系统,昨天突发奇想想要安装体验一下,发现想在服务器上安装还真麻烦,找了多个教程终于搞了一天之后给安装了上去,网上的其他教程多半是一个服务器对应一个网站,但是对于我一个服务器多个网站的人来说还是走了不少弯路。
一、服务器环境
温馨提示:如果你用的是虚拟空间的话,后面的内容可以不用看了,省点力气折腾其他的吧
服务器使用的阿里云服务器,安装nodebb使用的是Redis
保存数据,
1.1、文件夹分布
因为在服务器上运行着多个网站,所以需要单独为nodebb的程序建立一个文件夹,这里以文件夹的名字askdrycom
为例,那么服务器多个网站的目录就是wwwroot/askdrycom
、wwwroot/hudongdongcom
……这样的单独文件夹,每个文件夹对应每个网站。
在服务器后台,绑定域名的时候,如node.dongge.org,使用默认的80端口绑定的网站目录就是wwwroot/askdrycom
,多个域名都是用80端口绑定即可。
可以自己手动创建目录并且绑定,也可以使用例如宝塔面板等可视化控制界面去创建文件夹并且绑定域名。
注意:使用控制面板创建文件夹的时候很多会默认创建index.html这种初始化数据,绑定之后,记得把这个文件夹里的这些初始化东西全删除掉,留一个干净的文件夹。后面使用git拉取nodebb的代码时,需要是空白的文件夹
1.2、端口设置
nodebb的默认端口是4567,redis的默认端口是6379,所以要将服务器的4567和6379端口打开,在阿里云的安全组里面,添加4567/4567的端口允许,6379/6379同样设置允许。
如果服务器使用的是宝塔控制面板,除了在阿里云的安全组里面设置,也要在控制面板里面添加放行这两个端口。
二、搭建nodebb
搭建nodebb基本上就是复制下面的这些命令行去执行了,去阿里云服务器后台,远程连接,连接成功之后,输入创建实例时的root账号和密码登录,登录成功之后就是输入命令行搭建了,这个都不知道的话建议先百度下。
2.1、进入对应的文件夹
通过执行cd命令,进入之前创建的wwwroot/askdrycom文件夹里面
2.2、更新centos的环境
可以分步执行下面的命令
yum -y update
yum -y install epel-release (centos6可以不用运行这条命令)
2.3、安装基础必需软件
yum -y groupinstall "Development Tools"
yum -y install git redis ImageMagick npm
2.4、现在使用nvm进行安装nodejs
curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
source ~/.bash_profile
export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs
nvm list-remote
执行完这个list命令之后,会列举出来nvm可以安装的node的版本,可以选择最新版,比如11.10.0安装
nvm install v11.10.0
如果想要安装使用其他版本,比如安装使用v11.11.0
那就先安装
nvm install v11.11.0
然后再使用
nvm use v11.11.0
如果要卸载老版本,比如卸载v11.10.0
nvm uninstall v11.10.0
2.5、使用cnpm代替npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
2.6、启动redis并设置开机自启
systemctl start redis
systemctl enable redis
2.7、从github上下载nodebb安装文件
完成以上配置之后,服务器的环境配置就ok了,就可以开始安装nodebb了,
因为不是创建子文件夹,所以先移动到wwwroot
目录
cd ..
然后在wwwroot
目录下面执行下面的命令,将nodebb的文件下载到askdrycom的这个子目录,1.x.x
修改为NodeBB最新的版本,去github查看就行了。比如1.9.0,然后再执行
git clone -b v1.x.x https://github.com/NodeBB/NodeBB askdrycom
2.8、进行安装nodebb
下载完成之后,进入到这个子目录
cd askdrycom
执行安装
cnpm install
2.9、进行初始化设置
安装完成之后,开始nodebb的配置,执行
./nodebb setup
执行这个命令会要求你填写基本配置信息,需要注意两个地方,一个是域名,一个是数据库,否则安装之后访问会报错403,因为我绑定的域名是node.dongge.org
填写域名的时候,默认是http://localtion:4567,设置为:http://node.dongge.org:4567
填写数据库的时候,默认是mangodb,设置为redis
其他全部回车使用默认值即可。
三、nginx设置
如果你已经安装过nginx,可以设置的默认规则,记得把127.0.0.1修改为你的服务器ip,example.com修改为你的域名
server {
listen 80;
server_name example.com;
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;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
四、测试
可以执行
./nodebb dev
看是否有报错信息,有报错信息的话可以百度下
如果没有的话再执行
./nodebb start
开始使用即可。
五、注意事项
1、 绑定域名的时候,使用的是80端口,安装和配置的里面是4567端口,不要使用4567端口去绑定,否则会出现4567端口被占用的情况。
2、 git拉取nodebb资源过大造成超出上限报错GIT报错RPC failed;result=18, HTTP code
的话,可以设置下git的资源上限,设置教程http://flarum.dongge.org/d/13-git-rpc-failed-result-18-http-code
3、socket.io报错403的话,是因为你在执行nodebb setup
的时候填写的域名和访问的域名不一致造成的
六、参考文章
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/836.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
5 条评论
收藏了,赞赞
你好,我在使用你的方法配置nginx时,提示了这个,请问该如何解决
ERROR:
nginx: [emerg] "server" directive is not allowed here in /www/server/panel/vhost/rewrite/forum.yiveco.xyz.conf:1
nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
请问能进行多域名绑定吗,我想为我站点绑定
这种报错的话基本上都是环境问题,百度一下你会发现类似答案
比如:http://bbs.chinaunix.net/thread-4155659-1-1.html
很感谢您的帮助