北京赛车pk10直播开奖
首頁
登錄 | 注冊

Linux搭建NodeBB論壇指南-安裝篇

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


2019 monjeep.com webmaster#monjeep.com
12 q. 0.009 s.
京ICP備10005923號
北京赛车pk10直播开奖
拍视频赚钱叫什么名字 怎么在微信转发广告赚钱是真的吗 托拉姆物语赚钱攻略 168汤包赚钱吗 浦发信用卡可以赚钱吗 好友麻将游戏app下载 qq麻将技巧智慧宝典 买足彩怎么才能赚钱 股市赚钱的段子 58级法师能刷厄运赚钱