Wiki.jsは、Node.js、Git、およびMarkdownに基づく最新の強力なOpenSourcewikiアプリです。 Wiki.jsは非常に高速なNode.jsエンジンで実行され、CPUリソースを節約するように最適化されています。言及する価値のあるWiki.jsの機能のいくつかは次のとおりです。
- Gitに裏打ちされたマークダウン編集
- 軽量でありながら非常に強力
- 最新のウェブ用に美しく設計されています
- 統合アクセス制御
- 直感的な資産管理
- 組み込みの検索エンジン
このチュートリアルでは、リバースプロキシサーバーとしてNGINX、データベースサーバーとしてMongoDB、プロセスマネージャーとしてPM2を使用し、オプションでトランスポートレイヤーを保護することにより、CentOS7オペレーティングシステムでのWiki.jsバージョン1のインストールプロセスについて説明します。 acme.sh
を使用する クライアントとLet'sEncrypt認証局でSSLサポートを追加します。
Wiki.jsを実行するための要件は次のとおりです。
- Node.js6.11.1から10.xが必要です。
- MongoDBバージョン3.2以降。
- Gitバージョン2.7.4以降。
- NGINX、Apache、Caddy、H2OなどのWebサーバーソフトウェア...
- 空のGitリポジトリ(オプション)。
- 512MB以上のRAM。 1GBのRAMを推奨します。
- 約300MBのディスク容量。
- A /AAAADNSレコードが設定されたドメイン名。
- CentOS7オペレーティングシステム。
-
sudo
を使用するroot以外のユーザー 特権。
CentOSのバージョンを確認してください:
cat /etc/centos-release
タイムゾーンを設定します:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
オペレーティングシステムパッケージ(ソフトウェア)を更新します。これは、オペレーティングシステムのデフォルトのソフトウェアパッケージの最新の更新とセキュリティ修正を確実に行うための重要な最初のステップです。
sudo yum update -y
CentOSオペレーティングシステムの基本的な管理に必要ないくつかの重要なパッケージをインストールします。
sudo yum install -y curl wget vim unzip socat epel-release
Wiki.jsでは、Gitバージョン2.7.4以降をインストールする必要があります。 CentOSのデフォルトのGitバージョンは古すぎるため、ソースコードからビルドする必要があります。すばやくコンパイルするためのコマンドは次のとおりです。
# Remove existing git package if installed:
sudo yum remove -y git
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel curl-devel
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz && tar zxvf git-2.21.0.tar.gz
rm git-2.21.0.tar.gz
cd git-2.21.0
make configure
./configure make prefix=/usr/local all
sudo make prefix=/usr/local install
cd ~
which git
git --version
Wiki.jsはNode.jsに基づいて構築されています。 Wiki.jsの最新の推奨バージョンであるバージョン10をインストールします。 この記事の執筆時点で。 Linuxでは、いくつかのNode.jsインストールオプションがあります。Linuxバイナリ(x86 / x64)、ソースコード、またはパッケージマネージャーを使用します。 Node.jsのインストールと更新を簡単にするパッケージ管理オプションを使用します。
NodeSourceリポジトリからNode.jsの最新の推奨バージョンをダウンロードしてインストールします:
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install -y nodejs
注 :npmはNode.jsと一緒に配布されます。つまり、Node.jsをダウンロードすると、システムにnpmが自動的にインストールされます。
Node.jsとnpmのバージョンを確認してください:
node -v && npm -v
# v10.15.1
# 6.4.1
NpmはNode.jsとは別のプロジェクトであり、より頻繁に更新される傾向があります。その結果、Node.js(したがってnpm)をダウンロードしたばかりの場合でも、おそらくnpmを更新する必要があります。幸いなことに、npmは自分自身を更新する方法を知っています! npmを更新するには、ターミナルに次のように入力します:
sudo npm install -g [email protected]
このコマンドは、npmを最新の安定バージョンに更新します。
npmのバージョンを次のように再確認します:
npm -v
# 6.8.0
そして、最新のバージョン番号を返す必要があります。
Wiki.jsにはデータを保存するためのデータベースが必要であり、現在の安定バージョンのWiki.jsはMongoDBデータベースエンジンのみをサポートしています。それによると、MongoDBデータベースをインストールする必要があります。
/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.6
# db version v4.0.6
開始して有効にします(再起動時に開始するように設定します )MongoDBサービスがまだ開始されておらず、有効になっていない場合:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
ステップ3-acme.shクライアントをインストールし、Let's Encrypt証明書を取得します(オプション)
HTTPSを使用してWebサイトを保護する必要はありませんが、サイトのトラフィックを保護することをお勧めします。 Let's EncryptからSSL証明書を取得するには、acme.sh
を使用します。 クライアント。 Acme.sh
Let'sEncryptから依存関係なしでSSL証明書を取得するための純粋なUNIXシェルソフトウェアです。
acme.sh
をダウンロードしてインストールします :
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
acme.sh
を確認してください バージョン:
acme.sh --version
# v2.8.1
RSAを取得する およびECC/ ECCSA ドメイン/ホスト名の証明書:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
テスト用の偽の証明書が必要な場合は、--staging
を追加できます 上記のコマンドにフラグを立てます。
発行された証明書を一覧表示するには、次のコマンドを実行できます:
acme.sh --list
証明書を保存するフォルダを作成します。 /etc/letsencrypt
を使用します ただし、SSL証明書を保存するのに適したものであれば何でもかまいません。
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
証明書を/etc/letsencryptディレクトリにインストール/コピーします。
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
上記のコマンドを実行した後、証明書 およびキー になります:
- RSAの場合 :/etc/letsencrypt
/example.com
ディレクトリ。 - ECC / ECCSAの場合 :/etc/letsencrypt
/example.com_ecc
ディレクトリ。
すべての証明書は60日ごとに自動的に更新されます。
証明書を取得したら、rootユーザーを終了し、通常のsudoユーザーに戻ります。
exit
Wiki.js(または任意のHTTP Node.jsアプリ)は、実際のWebサーバー(NGINXやApacheなど)がなくても実行できます。ただし、Wiki.jsの前に標準のWebサーバーを配置することを強くお勧めします。これにより、SSL、複数のWebサイト、キャッシュなどの機能を使用できるようになります。このチュートリアルではNGINXを使用しますが、他のサーバーでも使用できます。適切に構成する必要があります。
NGINXをダウンロードしてインストールします:
sudo yum install -y nginx
NGINXのバージョンを確認してください:
nginx -v
# nginx version: nginx/1.12.2
NGINXサービスを有効にして開始します:
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
sudo vim /etc/nginx/conf.d/wiki.js.conf
を実行します NGINXをHTTPSリバースプロキシとして構成します。
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
charset utf-8;
client_max_body_size 50M;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
上記の設定で変更する必要があるのは、server_name
だけです。 ディレクティブ、および場合によってはproxy_pass
3000
以外の設定を行う場合はディレクティブ ポート。 Wiki.jsはポート3000
を使用します デフォルトで。
NGINX構成を確認してください:
sudo nginx -t
最後に、変更を有効にするには、NGINXをリロードする必要があります:
sudo systemctl reload nginx.service
Wiki.jsが存在するドキュメントルートディレクトリを作成します:
sudo mkdir -p /var/www/wiki.js
ドキュメントのルートディレクトリに移動します:
cd /var/www/wiki.js
/var/www/wiki.js
の所有権を変更します your_userへのディレクトリ:
sudo chown -R [your_user]:[your_user] /var/www/wiki.js
注: 上記のコマンドのyour_userを、このチュートリアルの前提条件として作成する必要のあるroot以外のユーザーに置き換えます。 。
/var/www/wiki.js
から ディレクトリで、次のコマンドを実行して、最新のWiki.jsアプリケーションをフェッチしてインストールします。
curl -sSo- https://wiki.js.org/install.sh | bash
インストールが完了したら、次のコマンドを実行して、現在インストールされているバージョンのWiki.jsを表示できます。
node wiki --version
# 1.0.117
インストールが完了すると、構成ウィザードを起動するように求められます。
したがって、次を実行して構成ウィザードを開始します。
node wiki configure
ウェブブラウザを使用して、http://example.com
に移動します 画面の指示に従います。構成ウィザードで入力したすべての設定は、config.yml
に保存されます ファイル。構成ウィザードが自動的にWiki.jsを起動します。
まず、ウェルカムメッセージが表示されます。 [開始]をクリックします 「ボタン:
次の「システムチェック」ページが表示されます。すべての要件が満たされている場合は、[続行]をクリックします 「ボタン。
Wikiに関する一般的な情報を入力し、[続行]をクリックします 「ボタン:
「重要な考慮事項」の通知を読み、「続行」をクリックします "次のステップ:
次に、データベースに接続して続行します:
Wiki.jsがデータベースに正常に接続されたことを示すメッセージが表示されます。 [続行]をクリックします 「ボタン:
パスを設定して続行します:
必要に応じてリモートGitリポジトリを設定するか、この手順をスキップしてください。この手順はオプションですが、強くお勧めします:
次に、[続行]ボタンをクリックします:
管理者アカウントを作成し、[続行]をクリックします 「ボタン:
そして最後に、Wiki.jsを開始します:
30秒ほど待つと、Wiki.jsのホームページにリダイレクトされます:
インストールが完了しました。ウェルカムページをwikiする必要があります:
デフォルトでは、システムの再起動後にWiki.jsは自動的に起動しません。起動時に起動するには、PM2プロセスマネージャーを設定する必要があります。 PM2はローカルのnpmモジュールとしてWiki.jsにバンドルされているため、PM2をグローバルにインストールする必要はありません。
次のコマンドを実行して、PM2にスタートアップサービスとして構成するように指示します。
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
最後に、次のコマンドを実行して、現在のPM2構成を保存します。
/var/www/wiki.js/node_modules/pm2/bin/pm2 save
これで、Wiki.jsは、PM2をプロセスマネージャーとして使用して、バックグラウンドプロセスとして実行されます。
- https://wiki.js.org/
- https://github.com/Requarks/wiki-v1
- https://github.com/Requarks/wiki