共计 3552 个字符,预计需要花费 9 分钟才能阅读完成。
Nodebb 是一个很酷很简洁的论坛系统。基于 nodejs,使用 socket.io 实现实时通信。socket.io 的好处在于提供了多种传输实现作为消息传输的方式(支持的传输方式 WebSocket,Flash,Ajax Long Polling 等,支持的浏览器 IE5.5+,Chrome 4+,Firefox 3+,Android Webkit,IPhone safari 等),并封装为简单一致的 API 以供调用。Nodebb 提供了高度可定制的主题、插件系统。想做个论坛玩玩,或者想学习 nodejs 的同学可以马上上手了。
示例环境:
CentOS v6.5,node.js v0.10.28 ,Redis v2.8.9 , nginx v1.6.0
一、安装基础依赖
首先安装依赖软件。这里基本上使用下载安装,各版本的 Linux 也可使用各自的包管理器进行更快捷的安装。Nodebb 依赖 node.js,数据库使用 Mongo 或 redis。这里以 redis 为例。
安装 nodejs
在 nodejs 下载页面选择需要的 nodejs 版本进行下载。解压后即可使用。以 64 位 Linux 版本为例:
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz
tar -xzf node-v0.10.28-linux-x64.tar.gz
为了方便使用,将 node 包下的 bin 目录加入到 /etc/profile 中,并执行 source:
cat << EOF >> /etc/profile
PATH=\$PATH:/path/to/node/bin
export PATH
EOF
source /etc/profile
注意这里为了不对 PATH 变量进行替换,使用了”” 对 $ 进行了转义。如果使用 vi 进行编辑就不用加”” 了。
安装 Redis
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar -xvf redis-2.8.9.tar.gz
cd redis-2.8.9
make
同样可以把 redis 的命令加入到 PATH:
cat << EOF >> /etc/profile
PATH=\$PATH:/path/to/redis/src
export PATH
EOF
source /etc/profile
需要注意的是 source 只把脚本对应的环境变量修改了,脚本执行完毕后如果想使用新改的变量,可以在当前环境下 `source /etc/profile
` 或启动另一终端。
安全起见,使用 redis 加上密码。在 redis.conf 中加入 `requirepass password
`
启动 redis:
redis-server ./redis.conf
测试 redis:
redis-cli
auth password
二、安装 NodeBB
安装 NodeBB 需要使用 git 克隆代码,所以先安装 git:
安装 git
yum install git
除 Fedora、CentOS 的其他版本 Linux 可参考这里进行 Git 安装
Ubuntu 下 Git 服务器的搭建与使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm
克隆 nodebb:
git clone git://github.com/designcreateplay/NodeBB.git nodebb
启动 setup 进行配置:
cd nodebb
./nodebb setup
配置完成后启动 nodebb:
./nodebb start
三、使用 Nginx 代理
完成上一步,安装就基本完成了。如果服务器存在多个应用需要使用 80 端口,可以使用 nginx 监听 80 端口,对应用进行代理。
安装 nginx
wget http://nginx.org/download/nginx-1.6.0.tar.gz
tar -xvf nginx-1.6.0.tar.gz
cd nginx-1.6.0
配置 nginx
在 nginx 目录下修改 conf/nginx.conf,在 http 中添加 upstream,这里以我的域名 haofan.info 和端口 4567 为例:
upstream nodebb {server haofan.info:4567;
}
新建配置文件 conf/site-enabled/nodebb.conf,内容如下:
server {listen 80 ;
server_name haofan.info www.haofan.info;
error_log logs/nodebb.error.log;
access_log logs/nodebb.access.log main;
location / {root /root/nodebb/public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://nodebb;
proxy_redirect off;
proxy_buffers 8 32k;
proxy_buffer_size 64k;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {root html;
}
}
修改 conf/nginx.conf 文件,使用 include 方式引入配置文件:
include site-enabled/nodebb.conf;
启动 nginx
sbin/nginx
四、附录:
nodebb 及依赖安装脚本 (不包含 nginx 部分):
#!/bin/sh
export SOFT_DIR=/usr/local/
export NodeBB_PARENT=/root
function exist_cmd()
{if hash "$1" 2>/dev/null; then
echo $1 ok;
return 1;
else
echo $1 not ok;
return 0;
fi
}
function install_nodebb()
{cd $NodeBB_PARENT
git clone git://github.com/designcreateplay/NodeBB.git nodebb
cd nodebb
npm install
./nodebb setup
}
exist_cmd node;
if [$? -eq 0 ] ; then
cd $SOFT_DIR
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz
tar -xzf node-v0.10.28-linux-x64.tar.gz
cd node-v0.10.28-linux-x64
echo "PATH=\$PATH:`pwd`/bin" >> /etc/profile
echo "export PATH" >> /etc/profile
source /etc/profile;
fi
exist_cmd redis-server;
if [$? -eq 0 ] ; then
cd $SOFT_DIR
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar -xvf redis-2.8.9.tar.gz
cd redis-2.8.9
make
echo "PATH=\$PATH:`pwd`/src" >> /etc/profile
echo "export PATH" >> /etc/profile
source /etc/profile
redis-server ./redis.conf
fi
exist_cmd git;
if [$? -eq 0 ] ; then
yum install git
fi
if [-d "$NodeBB_PARENT/nodebb" ] ; then
echo "Exists NodeBB,Delete it ? [yes/no]"
read deleteIt
if [[$deleteIt == y* ]] ; then
rm -rf $NodeBB_PARENT/nodebb
install_nodebb
fi
else
echo "Installing nodebb..."
install_nodebb
fi
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/131140.htm