CentOS 部署 NodeBB

WindSpirit發表於2018-08-06

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 中,隨時可以修改

相關文章