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