GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にNodeBBフォーラムをインストールする方法

NodeBBは、最新のウェブ用に構築されたNode.jsベースのフォーラムソフトウェアです。これは、MongoDBまたはRedisデータベースのいずれかで構築されています。 Webソケットを利用して、即時の対話とリアルタイムの通知を行います。 NodeBBには、ソーシャルネットワークの統合やストリーミングディスカッションなど、すぐに使用できる多くの最新機能があります。サードパーティのプラグインを使用することで、追加機能が有効になります。 NodeBBは、Githubにあるオープンソースプロジェクトです。このガイドでは、CentOS7オペレーティングシステムでのNodeBBのインストールプロセスを段階的に説明します。

要件

NodeBBでは、次のソフトウェアをインストールする必要があります。

  • Node.jsバージョン6 以上
  • MongoDBバージョン2.6 以上またはRedisバージョン2.8.9 以上
  • Nginxバージョン1.3.13 以上
  • Git

前提条件

  • 1GB以上またはRAMを搭載したCentOS7x86_64(64ビット)システムを実行しているサーバー
  • Aを含むドメイン名 / AAAA 設定されたレコード
  • sudo権限を持つroot以外のユーザー。
初期ステップ

CentOSのバージョンを確認してください:

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

タイムゾーンを設定します:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

オペレーティングシステムパッケージ(ソフトウェア)を更新します:

sudo yum update -y

このチュートリアルを完了するために必要なパッケージをインストールします:

sudo yum install -y curl wget vim bash-completion git socat epel-release

簡単にするために、SELinuxとファイアウォールを無効にします:

sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service

ステップ1:Node.jsとnpmをインストールします

NodeBBはNode.js上に構築されています。 推奨をインストールします バージョン8であるNodeBBのバージョン この記事の執筆時点で。 Linuxには、いくつかのNode.jsインストールオプションがあります。Linuxバイナリ(x86 / x64)、ソースコード、またはパッケージマネージャーを使用します。 Node.jsのインストールと更新を簡単にするパッケージ管理オプションを使用します。

NodesourceリポジトリからNode.jsの最新のロングタームサポート(LTS)リリースをダウンロードしてインストールします。

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs

npmからネイティブアドオンをコンパイルしてインストールするには、ビルドツールもインストールする必要がある場合があります:

sudo yum install -y gcc-c++ make
# or
# sudo yum groupinstall -y 'Development Tools'

npmはNode.jsとともに配布されます。つまり、Node.jsをダウンロードすると、システムにnpmが自動的にインストールされます。

Node.jsとnpmのバージョンを確認してください:

node -v && npm -v
# v8.12.0
# 6.4.1

NpmはNode.jsとは別のプロジェクトであり、より頻繁に更新される傾向があります。その結果、Node.js(したがってnpm)をダウンロードしたばかりの場合でも、おそらくnpmを更新する必要があります。幸いなことに、npmは自分自身を更新する方法を知っています! npmを更新するには、ターミナルに次のように入力します:

sudo npm install -g [email protected]

このコマンドは、npmを最新の安定バージョンに更新します。

ステップ2:MongoDBをインストールして構成する

NodeBBにはデータを保存するためのデータベースが必要であり、MongoDBとRedisをサポートしています。このチュートリアルでは、データストアエンジンとしてMongoDBを選択しました。したがって、次のいくつかの手順では、MongoDBデータベースを公式のMongoDBrpmリポジトリからダウンロードしてインストールします。

/etc/yum.repos.d/mongodb-org-4.0.repoを作成します ファイル。yumを使用してMongoDBを直接インストールできます。 :

sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo

ファイルに次の内容を入力します:

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

MongoDBパッケージの最新の安定バージョンをインストールするには、次のコマンドを発行します。

sudo yum install -y mongodb-org

MongoDBのバージョンを確認してください:

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.2
# db version v4.0.2

開始して有効にします(再起動時に開始するように設定します )MongoDBサービス:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

次のコマンドを実行して、MongoDBデータベースサーバーのステータスを確認します。

sudo systemctl status mongod.service
# active (running)

次に、NodeBBのMongoDBデータベースとユーザーを作成します。

最初にMongoDBサーバーに接続します。

mongo

組み込みのadminに切り替えます データベース。

> use admin

管理ユーザーを作成します。

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

注: プレースホルダーを置き換えます<Enter a secure password> 自分で選択したパスワードを使用します。

nodebbという新しいデータベースを追加します 。

> use nodebb

データベースが作成され、コンテキストがnodebbに切り替えられます 。次に、nodebbを作成します 適切な権限を持つユーザー。

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

注: もう一度、プレースホルダーを置き換えます<Enter a secure password> 自分で選択したパスワードを使用します。

Mongoシェルを終了します。

> quit()

MongoDBを再起動し、前に作成した管理ユーザーが接続できることを確認します。

sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin

すべてがうまくいけば、MongoDBをインストールしてNodeBB用に準備する必要があります。次のステップでは、ウェブサーバーのインストールと構成を扱います。

ステップ3:Acme.shクライアントをインストールし、Let's Encrypt証明書を取得します(オプション

HTTPSでNodeBBフォーラムを保護する必要はありませんが、サイトのトラフィックを保護することをお勧めします。 Let's EncryptからSSL証明書を取得するには、Acme.shクライアントを使用します。 Acme.shは、依存関係がゼロのLet'sEncryptからSSL証明書を取得するための純粋なUNIXシェルソフトウェアです。

Acme.shをダウンロードしてインストールします:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

Acme.shのバージョンを確認してください:

/etc/letsencrypt/acme.sh --version
# v2.8.0

RSAを取得する およびECC/ ECCSA ドメイン/ホスト名の証明書:

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength ec-256

上記のコマンドを実行した後、証明書 およびキー になります:

  • RSAの場合 :/etc/letsencrypt/forum.example.com ディレクトリ。
  • ECC / ECCSAの場合 :/etc/letsencrypt/forum.example.com_ecc ディレクトリ。

ステップ4:Nginxをインストールして構成する

NodeBBは、多くのウェブサーバーで正常に機能します。このチュートリアルでは、Nginxを選択しました。

最初にNginxリポジトリのPGPキーをダウンロードしてインポートします:

wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key

キーをインポートしたら、ディスクから安全に削除できます。

rm nginx_signing.key

/etc/yum.repos.d/nginx_mainline.repoを作成します ファイル。yumを使用してNginxを直接インストールできます。 :

sudo vim /etc/yum.repos.d/nginx_mainline.repo

ファイルに次の内容を入力します:

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1

最後に、最新のメインラインバージョンのNginxパッケージをインストールするには、次のコマンドを発行します。

sudo yum install -y nginx

インストール後、次のコマンドを実行してNginxのバージョンを確認できます:

nginx -v
# 1.15.3

開始して有効にします(再起動時に開始するように設定します )Nginxサービス:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

次のコマンドを実行して、Nginxウェブサーバーのステータスを確認します:

sudo systemctl status nginx.service
# active (running)

NodeBBは、デフォルトでポート4567で実行されます 。 http://example.com:4567と入力しないようにする 、NodeBBアプリケーションのリバースプロキシとしてNginxを構成します。ポート80でのすべてのリクエスト または443SSLを使用する場合 )ポート4567に転送されます 。

sudo vim /etc/nginx/conf.d/nodebb.confを実行します NginxをHTTPSリバースプロキシとして構成します。

server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name forum.example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

Nginxの構成を確認してください:

sudo nginx -t

最後に、変更を有効にするには、Nginxをリロードする必要があります:

sudo systemctl reload nginx.service

ステップ5:NodeBBをインストールしてセットアップする

NodeBBが存在するドキュメントルートディレクトリを作成します:

sudo mkdir -p /var/www/nodebb

ドキュメントのルートディレクトリに移動します:

cd /var/www/nodebb

/var/www/nodebbの所有権を変更します your_userへのディレクトリ。

sudo chown -R [your_user]:[your_user] /var/www/nodebb

注: 上記のコマンドのyour_userを、このチュートリアルの前提条件として作成する必要のあるroot以外のユーザーに置き換えます。

最新のNodeBBリポジトリをドキュメントルートフォルダに複製します:

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

setupを使用してアプリを実行し、セットアップスクリプトを開始します フラグ:

./nodebb setup

NodeBBのセットアップが完了したら、./nodebb startを実行します NodeBBサーバーを手動で起動するには:

./nodebb start

このコマンドを実行すると、Webブラウザで新しいフォーラムにアクセスできるようになります。

ステップ6:NodeBBをシステムサービスとして実行する

./nodebb startを介して開始した場合 、システムの再起動時にNodeBBが自動的に再起動することはありません。これを回避するには、NodeBBをシステムサービスとして設定する必要があります。

実行中の場合は、NodeBBを停止します:

./nodebb stop

新しいnodebbを作成します ユーザー:

sudo useradd nodebb

/var/www/nodebbの所有権を変更します nodebbへのディレクトリ ユーザー:

sudo chown -R nodebb:nodebb /var/www/nodebb

nodebb.serviceを作成します systemdユニット設定ファイル。このユニットファイルは、NodeBBデーモンの起動を処理します。 sudo vim /etc/systemd/system/nodebb.serviceを実行します 以下のコンテンツを追加します:

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

注: 選択した名前に従ってユーザー名とディレクトリのパスを設定します。

nodebb.serviceを有効にする 再起動時にnodebb.service:をすぐに開始します

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

nodebb.serviceを確認してください ステータス:

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

おめでとう!これで、NodeBBディスカッションプラットフォームがCentOS7サーバーに正常にインストールおよびデプロイされました。

リンク
  • https://nodebb.org/
  • https://docs.nodebb.org/

Cent OS
  1. CentOS7にVagrantをインストールする方法

  2. CentOS8にownCloudをインストールする方法

  3. CentOS7にNodeBBをインストールする方法

  1. CentOS8にGiteaをインストールする方法

  2. CentOS8にMemcachedをインストールする方法

  3. CentOS7にNginxをインストールする方法

  1. CentOS7にApacheをインストールする方法

  2. CentOS7にTomcat8.5をインストールする方法

  3. CentOS7にJenkinsをインストールする方法