0x00 前言

NodeBB 是基于 NodeJS 的开源 BBS 系统,可以搭配 redis 或 mongodb 数据库,本文中由于使用 NodeBB 配置中默认的 npm 安装会引起不知原因的 503:Too many open connections 错误,所以使用yarn手动安装

0x01 切换国内源并添加 mongodb 源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

备份 CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

下载阿里云源到 yum 源配置目录并重命名为CentOS-Base.repo

yum -y install epel-release vim

安装 epel 源及 vim

vim /etc/yum.repos.d/mongodb-org-3.4.repo

创建 mongodb 源并编辑,添加如下内容

[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.asc

yum clean all

清空 yum 缓存

yum makecache

创建 yum 缓存,可以加快软件包索引速度,一般在安装软件包的时候会自动创建

yum update

更新软件包

0x02 科学上网

yum install python-pip

安装 pip

pip install shadowsocks

通过 pip 安装 ShadowSocks

vim /etc/shadowsocks.json

创建 shadowsocks 配置文件并编辑,目录和文件名随意,添加如下内容

{
"server" : "IP地址",
"server_port" : "端口",
"local_address" : "127.0.0.1",
"local_port" : "1080",
"password" : "密码",
"method" : "加密方法"
}

nohup sslocal -c /etc/shadowsocks.json >/dev/null 2>&1 &

后台运行 sslocal (ShadowSocks 的客户端),-c 后面填写配置文件位置,将该命令写入 /etc/rc.d/rc.local (旧版本或其他系统有可能在 /etc/rc.local,但要检查 /etc 下的是不是链接),并使用 chmod +x /etc/rc.local 即可使其开机自启

yum -y install privoxy

安装 privoxy

vim /etc/privoxy/config

编辑 privoxy 配置文件,在文件最底部添加如下代码,包括最后的"."

forward-socks5 / 127.0.0.1:1080 .

vim /root/.bash_profile

配置代理地址及端口,在文件最底部添加如下代码

export ftp_proxy=http://127.0.0.1:8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

source /root/.bash_profile

使配置生效

systemctl start privoxy

启动 privoxy

systemctl enable privoxy

允许 privoxy 开机自启

curl google.com

测试配置是否成功,如果成功则会输出类似如下代码

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE>
</HEAD>
<BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=1379402837567135amp;usg=AFQjCNF3o7umf3jyJpNDPuF7KTibavE4aA">here</A>.
</BODY>
</HTML>

0x03 安装 mongodb 并配置用户

yum install mongodb-org

安装 mongodb

systemctl stop firewalld

停止 firewall 防火墙

systemctl disable firewalld

禁止 firewall 防火墙自启

systemctl start mongod

开启 mongodb

systemctl enable mongod

允许 mongodb 自启

mongo admin --eval "db.createUser({user:'root',pwd:'123456',roles:[{role:'root',db:'admin'}]});"

使用 admin 数据库并新建用户,用户名:root,密码:123456,权限:超级管理员

mongo nodebb --eval "db.createUser({user:'nodebb',pwd:'123456',roles:[{role:'readWrite',db:'nodebb'},{ role: 'clusterMonitor', db: 'admin' }]});"

使用 nodebb 数据库(如果不存在则新建数据库)并新建用户,用户名:nodebb,密码:123456,权限1:nodebb 数据库中可读写,权限2:admin 数据库中集群管理员

0x04 安装 Node 环境并配置 NodeBB

yum -y groupinstall "Development Tools"

安装开发工具包

yum -y install git ImageMagick

安装 git ImageMagick

curl https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

下载 nvm 源码并安装

source /root/.bash_profile

使 nvm 配置生效

export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node

export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs

修改 nvm 镜像为淘宝镜像

nvm install --lts

安装最新的 LTS 版 NodeJS

yum -y install yarn

安装 yarn

mkdir -p /var/www/html

创建网站根目录

git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git /var/www/html

下载 NodeBB 源码到网站根目录

cd /var/www/html/ | yarn install

NodeBB 目录执行 yarn install

/var/www/html/nodebb setup

执行 NodeBB 初始化设置

设置中域名要填访问域名,例如要在域名为 https://www.leviatan.cn 的80端口上访问 NodeBB,则域名填 https://www.leviatan.cn:80 ,后面不要加"/",否则在访问某些功能时会出现类似 https://www.leviatan.cn// 的情况

所有填写的配置会保存在 NodeBB 目录下的 config.json 中,随时可以修改

CentOS 部署 NodeBB的更多相关文章

  1. 跳过 centos部署 webpy的各种坑

    用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...

  2. 【Linux】Centos部署MySQL

    将CentOS部署MySQL需要本地配置环境.本地编译MySQL,耗时较长的情况,优化为编译成型MySQL并打包,推送并按配置部署. 首先需要在一台机器配置好环境,搭个YUM源,并将所需要的包取出备用 ...

  3. Tigase XMPP Server在CentOS部署和配置

    Tigase XMPP Server在CentOS部署与配置 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 以下讲述Tigase XMPP Server ...

  4. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  5. 为什么使用centos部署服务器

    这个是实验室同学面试的时候,面试官问的一个问题? 为什么选择centos系统,为什么centos系统用的比较多呢? 首先我们说下redhat红帽公司,它是全球最大的linux服务提供商,它的服务是最好 ...

  6. hadoop集群搭建--CentOS部署Hadoop服务

    在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到环境为:VMware 12+CentOS6.4 hadoo ...

  7. CentOS部署yapi

    转载自 https://www.linuxidc.com/Linux/2018-01/150513.htm 在mongoDB添加yum源时,源路径有修改,原文中的路径404不可用 一.准备工作 1.1 ...

  8. netcore项目在Centos部署:nohup和supervisor方式

    Centos上部署netcore项目 1 准备工作 在Centos上部署netcore应用程序有两种常用方式:nohup和supervisord,这里简单演示一下这两种部署方式. 首先我们写一个简单的 ...

  9. centos部署yapi爬坑记

    前言 这几天终于完成了为期三个月的公司某个demo版的项目,在这期间和公司的后台因为API的事怼过无数次了,'我的接口没问题,是你请求的方式不对吧!'.'一定是你请求的参数不对'......诸如此类问 ...

随机推荐

  1. linux下安装python,Django,虚拟环境

    linux下python安装步骤: 1.下载python3源码包 wget https://www.python.org/ftp/python/3.6.6/Python-3.6.7.tgz 2.下载p ...

  2. SpringAOP日志配置

    SpringAOP日志配置 配置文件配置 l  配置spring-mvc.xml <aop:config proxy-target-class="true" /> &l ...

  3. 20175234 2018-2019-2 《Java程序设计》第五周学习总结

    20175234 2018-2019-2 <Java程序设计>第五周学习总结 接口实现流程简述 interface定义接口 接口只能定义常量和方法,方法不能是具体的 实现接口时,需类来完成 ...

  4. 20170805_linux

    http://blog.csdn.net/aaaaatiger/archive/2007/07/28/1713611.aspx Delphi/Pascal code   ? 1 2 3 4 5 6 7 ...

  5. MyAdvice 填充方法(在原有方法上添加方法)

    //applicationContext.xml配置文件  /UserServiceImp继承于UserService接口 <!-- 1 配置目标对象-->    <bean nam ...

  6. java多线程系列7 高级同步工具(1)信号量Semaphore

    Semaphore叫做信号量 可以控制某个资源可被同时访问的个数, acquire() 获取一个许可,得到许可才能执行后面的代码,如果没有就等待. release() 释放一个许可. 当信号量的只允许 ...

  7. java多线程系列8 高级同步工具(2)CountDownLatch

    CountDownLatch,计数器的初始值为线程的数量.每当一个线程完成了自己的任务后, 计数器的值就会减1.当计数器值到达0时,它表示所有的线程已经完成了任务, 然后在闭锁上等待的线程就可以恢复执 ...

  8. Python(五) 字典

  9. Django基础—1

    一. Django的安装1. 查看已安装的Django的版本     进入到终端以及Python的交互模式    python3/ ipython32. 交互模式中输入import django    ...

  10. MySQL 查看修改字符集

    查看MYSQL数据库服务器和数据库字符集 方法一:show variables like '%character%'; 方法二:show variables like 'collation%'; sh ...