原文:https://www.kancloud.cn/a632079/nodebb-cn/372108

服务器选用 64 位 CentOS,MongoDB 现在只有64位版本

CentOS & MongoDB
一、准备
二、安装
§1. Node.js
§2. MongoDB
§3. NodeBB
§4. Nginx(反代)
三、完成
§1. 启动
§2. 高级管理
一、准备
关闭 SELinux
有些主机商给你的 CentOS 可能不存在下面那个文件,那你可以直接跳过这步。

vim/etc/sysconfig/selinuxvim/etc/sysconfig/selinux vim /etc/sysconfig/selinux yum install vim #如果 vim 指令未安装,那就按照它
找到 SELINUX 然后修改成 disabled.

SELINUX = disabled
更新系统并安装基础工具
yumupdateyumupdate yum update yum -y install epel-release
yum−ygroupinstall“DevelopmentTools”yum−ygroupinstall“DevelopmentTools” yum -y groupinstall “Development Tools” yum -y install git ImageMagick ImageMagick-devel
二、安装
§1. Node.js
nvm是一款优秀的Node.js版本管理软件,这里我们就使用它来安装 Node.js.

首先,我们现在服务器上安装 NVM

截止2018.01.25,NVM最新版本为 v0.33.8

$ sudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
可以在 Github 中获取 NVM 最新的安装指令

添加 NVM 到环境变量
exportNVMDIR="exportNVMDIR=" export NVM_DIR="HOME/.nvm”
[ -s “NVM_DIR/nvm.sh" ] && . "NVM_DIR/nvm.sh" ] && . "NVM_DIR/nvm.sh" ] && . "NVM_DIR/nvm.sh” # This loads nvm
使环境变量的修改生效
source /.bashrc检查是否成功安装source/.bashrc检查是否成功安装 source ~/.bashrc 检查是否成功安装 command -v nvm
如果没有抛出任何错误信息,那么我们继续下面的步骤吧。(如果有,请到Github中寻找解决方案。)

如果你使用的机器是国内的话,建议使用以下代码让NVM使用淘宝镜像来下载源码(腾讯云的下载速度只有可怜的1x.kb/s…)

让NVM使用淘宝源

$ export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
$ export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs
好,我们使用下面的代码来安装LTS版本

安装Node.js LTS

$ nvm install –lts
等待执行完成,如果使用node -v ,npm -v都能正确输出版本号的话,说明nodejs已经成功安装。
在国内,NPM源的速度比较慢,可以使用sudo npm config set registry http://registry.npm.taobao.org/来将npm更换到国内的淘宝源

§2. MongoDB
配置 MongoDB yum 源
创建文件并编辑它
$ vim /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
更新文件,安装
yumupdateyumupdate yum update yum -y install mongodb-org
如果您是国内服务器,那么这样安装 MongoDB 会很慢,可以将 repo 里面的链接换成阿里云源,
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/6/mongodb-org/stable/x86_64/

$ mongod –version #查看 Mongodb 版本
请检查:您的 MongoDB 版本是否大于或等于3.4.10,如果不是请立即升级(以前的版本存在严重的安全风险)!

关闭巨型页
安装完成后,为了消除 MongoDB 的性能警告,需要关闭 Linux 巨型页:

echonever>/sys/kernel/mm/transparenthugepage/enabledechonever>/sys/kernel/mm/transparenthugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
启动 MongoDB 服务
$ service mongod start
§3. NodeBB
在开始之前:
① 提前切换成root用户,免得麻烦。
② 不要直接下载 Github 上发布的 release 压缩包,那里面没有 .git/config 配置文件,而在安装过程中需要读取配置文件的值。正确的做法是使用 Git 从 GitHub 上克隆源代码。

下载 NodeBB
切换到 /home目录(可替换为你想要的位置),克隆源代码:

cd /home #切换到你想要的位置cd /home #切换到你想要的位置 cd /home #切换到你想要的位置 git clone -b v1.8.x https://github.com/NodeBB/NodeBB.git nodebb
现在,你可以使用国内的镜像仓库(https://gitee.com/NodeBB-CN/NodeBB.git)来提高连接速度。

注意: v1.8.x 是最新的稳定版分支的名字,不建议 使用其他分支作为 生产环境!

安装 NodeBB 的运行依赖
cd /home/nodebb # /home替换成你上面选取的位置  
新建数据库(详细可查看 配置MongoDB 篇)  
使用以下命令进入 MongoDB 的命令行管理界面:cd /home/nodebb # /home替换成你上面选取的位置  新建数据库(详细可查看 配置MongoDB 篇)  使用以下命令进入 MongoDB 的命令行管理界面: cd /home/nodebb # /home替换成你上面选取的位置 新建数据库(详细可查看 配置MongoDB 篇) 使用以下命令进入 MongoDB 的命令行管理界面: mongo
新建数据库:

use nodebb # 新建数据库,名叫 nodebb
添加用户角色:
db.createUser( { user: “nodebb”, pwd: “替换成你的密码”, roles: [ “readWrite” ] } )
NodeBB 需要 MongoDB 版本至少为 2.6

如果要在NodeBB的管理控制面板(高级→数据库)中查看数据库统计信息,请键入以下命令:

db.grantRolesToUser(“nodebb”,[{ role: “clusterMonitor”, db: “admin” }]);
打开 MongoDB 权限认证
执行 vim /etc/mongod.conf,找到 security: 这一行,取消注释并改为:
security:
authorization: enabled
重启 MongodB
servicemongodrestart初始化NodeBB使用如下命令开始初始化:servicemongodrestart初始化NodeBB使用如下命令开始初始化: service mongod restart 初始化 NodeBB 使用如下命令开始初始化: ./nodebb setup
注意事项:

URL used to access this NodeBB 这个问题填写域名http://www.xxx.com(别漏下 http 前缀,域名末尾不加 /)
另外,NodeBB会默认监听本地端口 4567,我们后面还要使用 nginx 转发 80 端口的请求到 4567 端口。
中间还有两次需要回答问题 Which database to use,
第一次是回答数据库程序名 mongo,第二次回答所创建的数据库名 nodebb
这些回答都将被写入 NodeBB 的配置文件config.json,如果答错了可以随后手动修改
极度重要!

注意第一个问题所回答的 URL 将会作为之后邀请链接的网址,我们设成了 http://www.xxx.com,那么邀请连接就是 http://www.xxx.com/register
同时注意末尾别加斜杠,否则邀请链接里多一个斜杠成了 http://xxx//register
也不要加端口,不然邀请链接里包含 4567 端口(http://www.xxx.com:4567/register),而4567端口是不对外开放的!
§4. Nginx(反代)
上一步我们安装好了nodebb,但是需要通过4567端口才能访问。现在我们设置一下反代服务,支持通过域名访问网站。

反代服务器 有很多种,但这里我们选取的是最流行也是性能最优秀的反代服务: Nginx

执行vim /etc/yum.repos.d/nginx.repo 并写入以下信息:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/x86_64/
gpgcheck=0
enabled=1
开始安装:
$ yum install nginx.x86_64
配置 Nginx
执行 vim /etc/nginx/nginx.conf,在 http 语句块内追加上:

#

server {
listen 80;

server_name www.xxx.com; # 你的域名

location / {
proxy_set_header X-Real-IP remoteaddr;proxysetheaderX−Forwarded−Forremoteaddr;proxysetheaderX−Forwarded−Forremote_addr; proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto scheme;proxysetheaderHostscheme;proxysetheaderHostscheme; 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 Supportproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
}# 配置 502 页? 参考: 高级 - 配置 Nginx

}

#

启动 Nginx
$ service nginx start
更详细的Nginx配置,可参考 高级 - 配置Nginx 篇。

三、完成
§1. 启动
运行以下命令启动 NodeBB:

$ ./nodebb start
请检测是否能通过url访问你的社区,若不行,则看看哪一步出错了。

至此,你的论坛已经完成。

§2. 高级管理
为了更好的管理 NodeBB 的运行,推荐使用 forever 这个工具自动后台运行 NodeBB。

安装 forever
$ npm install forever -g # 这里必须加-g参数,不然可能装不上
装完后 forever 后,其可执行程序位于 Node.js 安装目录的 bin 子目录里,我们此前已经把整个 bin 目录加入 PATH 变量了。

管理 NodeBB 进程
后台启动 NodeBB:
foreverstartapp.js停止NodeBB:foreverstartapp.js停止NodeBB: forever start app.js 停止 NodeBB: forever stop app.js
查看后台的 NodeBB:
$ forever list
参考:

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/#install-mongodb-community-edition
https://docs.nodebb.org/en/latest/configuring/databases/mongo.html
https://docs.mongodb.org/manual/administration/configuration/#security-considerations
https://docs.nodebb.org/en/latest/configuring/proxies/nginx.html

CentOS + Mongodb 搭建NodeBB [转载翻译]相关推荐

  1. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  2. 用Node.JS+MongoDB搭建个人博客(成品展示)

    在博客里可以随意畅写和分享自己喜欢的技术,和网友分享知识也是一种提升.根据自己所发表的博客也能更加加深印象. 与此同时写博客也可以提高自己的写作能力(虽然不咋地),但我相信博客只会越写越有质量的. 个 ...

  3. CentOs下搭建GitLab

    CentOs下搭建GitLab gitlab提供ce 和 ee两个版本,从官网的解释来看,如果想体验完整的功能则安装ee版并付费,不然体验时间过后ee版将自动降级为ce版,所以看个人需求安装.二者的区 ...

  4. react+express+mongodb搭建个人博客

    这是本人用React+Express+mongodb搭建的一个简易博客系统,包括前端展示和后台管理界面.查看源码欢迎访问我的github 以下是参考我的源码后的操作 技术架构 前端 基础:HTML+C ...

  5. CentOS下搭建测试WEB平台

    CentOS下搭建测试WEB平台 LAMP MYSQL 下载免编译的软件包 cd /usr/local/src wget http://mirrors.sohu.com/mysql/MySQL-5.1 ...

  6. nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客

    GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...

  7. CentOS 服务器搭建 mediawiki

    CentOS 服务器搭建 mediawiki 具体安装步骤参见:本地安装mediawiki 两个不同点如下: 一.数据库:SQLite 1.选择SQLite做服务器有两个原因: -- 1.轻量服务器, ...

  8. CentOS 7 搭建GlusterFS

    CentOS 7 搭建GlusterFS 实验需求: 4台机器安装GlusterFS组成一个集群 客户端把docker registry存储到文件系统里 4个节点的硬盘空间不整合成一个硬盘空间,要求每 ...

  9. centos下搭建dhcp服务器

    centos下搭建dhcp服务器 一.软件环境 CentOS release 6.5 dhcp-4.1.1-51.P1.el6.centos.x86_64 dhcp-common-4.1.1-51.P ...

最新文章

  1. eclipse CreateProcess error=87 的解决办法
  2. 移动端实现文字轮播_js实现移动端轮播图
  3. Maven常用命令和代码实操
  4. IntelliJ IDEA 面板、菜单介绍
  5. 学python有前途吗-学python有前途吗?
  6. orangepi香橙派安装VNC Viewer远程桌面
  7. 二进制,逆向工程,深入理解计算机系统
  8. RHEL常用 Linux命令操作
  9. C语言 16进制与字符串互转函数
  10. hdoj小数转化为分数
  11. 杭州电子科技大学计算机专业考研分数线,2019杭州电子科技大学研究生分数线汇总(含2016-2019历年复试)...
  12. android root权限命令行,如何通过命令行取得安卓root权限
  13. HCIP-H12-223练习题
  14. ATTCK靶场系列(七)
  15. 手机收不到第三方发送的短信及验证码
  16. 电机学他励直流发电机matlab,基于Matlab并励直流发电机的自励过程分析
  17. python前端——HTML超文本标记语言、CSS层叠样式表
  18. java输入年月日,输出这是这一年的第几天
  19. python平方数_【python】升序查找100内最大平方数的方法
  20. 蓝桥杯 ALGO-121 算法训练 猴子分苹果

热门文章

  1. ios网易大白Crash自动防护
  2. 软考高项(信息系统项目管理师)考试资料汇总和学习方法总结
  3. 生产环境服务端报错:阿里云IOT连接中断
  4. 18岁的融创正在成为地产圈“潮牌”
  5. 内网安全-域横向PTHPTKPTT哈希票据传递
  6. VGA主机连接HDMI显示器
  7. 微信小店二次开发_怎么吧微信小店装修的更好看
  8. leet234.回文链表
  9. [工作记事] Ubuntu 编译安装PHP以及gd库使得支持jepg
  10. 设计模式之代理模式(第二篇)