この記事では、マネージドDebian9サーバーにEtherpadをインストールする方法を紹介します。
Etherpadは、Webベースのリアルタイムエディタであり、オープンソースパッケージとして提供されます。このアプリケーションを使用すると、ユーザーはドキュメントをリアルタイムで同時に編集し、色付きのテキストを使用して違いを確認できます。 Etherpadには、ユーザーが相互に簡単に通信できるチャットボックスもあり、生産性がさらに向上します。インストールにはそれほど時間はかからないので、始めましょう
ステップ1:サーバーに接続する
始める前に、rootユーザーまたは管理者アカウントとしてSSH経由でサーバーに接続する必要があります。これを行うには、次のコマンドを使用します。
ssh root@IP_ADDRESS -p PORT_NUMBER
もちろん、IP_ADDRESSを置き換える必要があります およびPORT_NUMBER それぞれのサーバーのIPアドレスとSSHポート番号を使用します。必要に応じて、「root」を管理者アカウントのユーザー名に置き換えます。
ログインしたら、次のコマンドを実行して、サーバーが最新であることを確認します。
apt update apt upgrade
ステップ2:依存関係をインストールする
ログインに成功したら、次のコマンドを実行して、Node.jsインストールのすべての依存関係をインストールできるようにする必要があります。
apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y
ステップ3:Node.jsをインストールする
EtherpadにはNode.jsバージョン8.9.0以降が必要なため、このチュートリアルでは、最新バージョンのNode.jsをインストールします(このチュートリアルの執筆時点)。
次のcurlコマンドを使用してNodeSourceリポジトリを有効にします。
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
これで、次のコマンドを使用してNode.jsをインストールできます。
apt install -y nodejs
以下のコマンドを使用して、nodejsとnpmのバージョンを確認できます。
nodejs --version npm --version
ステップ4:MySQLをインストールして構成する
データベースサーバーは、Etherpadを実行するための要件の1つです。優れたオープンソースデータベースサーバーであるMySQLをインストールできます。次のコマンドを入力して、MySQLをサーバーにインストールします。
apt install mysql-server mysql-client
MySQLがサーバーにインストールされたら、以下のコマンドを使用して、MySQLサービスを停止、開始、および有効にすることができます。
systemctl start mysql systemctl stop mysql systemctl enable mysql
次のコマンドはオプションですが、推奨されています。リモートルートアクセスを禁止し、テストデータベースを削除し、MySQLのルートパスワードを設定することで、MySQLサーバーを保護する場合は、このコマンドを実行できます。
mysql_secure_installation
プロンプトが表示されたら、ガイドに従って以下の質問に答えてください。
Enter current password for root (enter for none): Just press the [Enter] key, as no password is set by default. Set root password? [Y/n]: Y New password: Enter your password Re-enter new password: Repeat your password Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
MySQLサーバーを再起動して、変更を有効にします。
systemctl restart mysql
これで、次のコマンドを使用してMySQLシェルにログインできるようになります。
mysql -u root -p
次に、上記で作成したパスワードを入力してサインオンします。 MySQLシェルに入ったら、次のコマンドを使用して、etherpad_dbというデータベースを作成できます。 Etherpadアプリケーション用。
CREATE DATABASE etherpad_db;
ユーザーにetherpad_dbへのフルアクセス権を付与するには、次のコマンドを実行します。
GRANT ALL PRIVILEGES ON etherpad_db.* TO etherpad_user@localhost IDENTIFIED BY 'Str0n9Pas$worD';
注: 「Str0n9Pas$worD」を一意の強力なパスワードに置き換えることを忘れないでください。これで、特権のフラッシュ操作を使用して付与テーブルを再ロードできます。その後、MySQLシェルを終了できます。
FLUSH PRIVILEGES; EXIT;
ステップ5:Etherpadをダウンロードしてインストールする
次のコマンドを使用して、etherpadという新しいユーザーを作成し、そのユーザーに切り替えます。
useradd -m -s /bin/bash etherpad su - etherpad
以下のgitコマンドを実行し、etherpadリポジトリのクローンを作成します。
git clone git://github.com/ether/etherpad-lite.git
etherpadリポジトリのクローンを作成したら、etherpad-liteディレクトリに入り、bin/run.shを実行できます。 Etherpadを起動するスクリプト。
cd etherpad-lite/ bin/run.sh
Etherpadが一時的に起動しました。 Etherpadのホームページを表示するには、お好みのWebブラウザーを開いて、サーバーのパブリックIPアドレスをポート9001で入力します。
http://server_IP_address:9001/ Etherpadのホームページが表示されるはずです。
アプリケーションを停止するには、ターミナルで「Ctrl+c」を押します。これに伴う問題は、サービスが一時的にのみ実行されることです。ターミナルセッションで開いている間のみです。サーバーを永続的に実行するには、サーバー用のサービスを作成する必要があります。これは、ステップ7で説明されています 。
ステップ6:Etherpadを構成する
記事のこの手順に従って、Etherpadエディターの基本的な構成を実行します。
etherpadユーザーにログインし、etherpad-liteディレクトリに入ります。
su - etherpad cd etherpad-lite/
settings.jsonを開きます 好みのテキストエディタを使用した構成ファイル。この例では、選択するテキストエディタとしてnanoを使用します。
nano settings.json
構成ファイルのIPアドレスを「server_IP_address」に変更します。オプションで、リスニングポートをデフォルト以外に変更できます。この例では、デフォルトのポートを使用します。
"ip": "server_IP_address", "port" : 9001,
コメントタグ/*を使用して、構成ファイルのデフォルトである「ダーティ」データベースを無効にします。 および*/ 以下の例に示すように。
/*
"dbType" : "dirty",
"dbSettings" : {
"filename" : "var/dirty.db"
},
*/ 次に、MySQLデータベース構成のコメントを解除し、この記事の4番目のステップで作成したMySQL情報を入力します。
"dbType" : "mysql",
"dbSettings" : {
"user" : "etherpad_user",
"host" : "localhost",
"port" : 3306,
"password": "Str0n9Pas$worD",
"database": "etherpad_db",
"charset" : "utf8mb4"
},
これらの行からコメントを削除し、Str0n9Pas$worDを置き換えることで、管理者ユーザーを有効にできます。 選択したパスワードを使用します。
"users": {
"admin": {
// "password" can be replaced with "hash" if you install ep_hash_auth
"password": "Str0n9Pas$worD",
"is_admin": true
},
"user": {
// "password" can be replaced with "hash" if you install ep_hash_auth
"password": "Str0n9Pas$worD",
"is_admin": false
}
},をインストールすると、"password"を"hash"に置き換えることができます。 すべての変更が完了したら、構成ファイルを保存して終了できます。
ステップ7:Etherpadをサービスとしてセットアップする
方法1:Systemd
このステップでは、Debian9システムでsystemdサービスとして実行するようにEtherpadを設定します。
次のコマンドを実行して、「etherpad.service」という名前の新しいサービスファイルを作成できるようにします。
cd /etc/systemd/system/ && nano etherpad.service
次に、次の構成を貼り付けます。
[Unit] Description=etherpad-lite (real-time collaborative document editing) After=syslog.target network.target [Service] Type=simple User=etherpad Group=etherpad WorkingDirectory=/home/etherpad/etherpad-lite Environment=NODE_ENV=development ExecStart=/usr/bin/nodejs /home/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js Restart=always # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart. [Install] WantedBy=multi-user.target
その後、構成ファイルを保存して終了できます。以下のコマンドを使用して、サーバーにsystemdサービスリストをリロードします。
systemctl daemon-reload
これで、systemctlを使用できます コマンドを使用して、Etherpadアプリケーションを簡単かつ永続的に起動および有効化できます。サービスを有効にすると、システムが起動するたびにサービスが自動的に開始されます。
systemctl start etherpad systemctl enable etherpad
方法2:Init.d
initを使用する場合は、次のコマンドを使用して新しい初期スクリプトを作成できます。
nano /etc/init.d/etherpad
次のスクリプトを貼り付けます。
#!/bin/sh
### BEGIN INIT INFO
# Provides: etherpad-lite
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts etherpad lite
# Description: starts etherpad lite using start-stop-daemon
### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin"
LOGFILE="/var/www/etherpad-lite/etherpad-lite.log"
EPLITE_DIR="/var/www/etherpad-lite"
EPLITE_BIN="bin/safeRun.sh"
USER="etherpad"
GROUP="etherpad"
DESC="Etherpad Lite"
NAME="etherpad-lite"
set -e
. /lib/lsb/init-functions
start() {
echo "Starting $DESC... "
start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true
echo "done"
}
#We need this function to ensure the whole process tree will be killed
killtree() {
local _pid=$1
local _sig=${2-TERM}
for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
killtree ${_child} ${_sig}
done
kill -${_sig} ${_pid}
}
stop() {
echo "Stopping $DESC... "
while test -d /proc/$(cat /var/run/$NAME.pid); do
killtree $(cat /var/run/$NAME.pid) 15
sleep 0.5
done
rm /var/run/$NAME.pid
echo "done"
}
status() {
status_of_proc -p /var/run/$NAME.pid "" "etherpad-lite" && exit 0 || exit $?
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $NAME {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0 ファイルを保存して閉じます。ファイルの権限を変更してスクリプトを実行可能にし、起動時にスクリプトを開始できるようにします。
chmod +x /etc/init.d/etherpad update-rc.d etherpad defaults /etc/init.d/etherpad start
次のコマンドを使用して、アプリケーションがポート9001で稼働していることを確認できます。
systemctl status etherpad and netstat -tunlp | grep 9001
ステップ8:リバースプロキシの設定
ApacheとNginxはインターネット上で最も人気のあるWebサーバーの1つであるため、このステップでは、ドメイン名でEtherpadを含むWebサイトを開くことができるように、それらのリバースプロキシを作成する方法を示します。これには、Etherpadにアクセスするためにポート番号を指定する必要がないという利点もあります。
サーバーにApacheまたはNginxがすでにインストールされていることを前提としています。以下のコマンドでWebサーバーのステータスを確認できます。
Apache2の場合:
systemctl status apache2
Nginxの場合:
systemctl status nginx
サーバーにApache2がインストールされている場合は、新しい仮想ホスト構成ファイルを作成して、ドメイン名でEtherpadアプリケーションにアクセスできるようにすることができます。
nano /etc/apache2/sites-available/domain_name.conf
次のコンテンツをファイルに追加します:
<VirtualHost *:80>
ServerName domain_name.com ServerAlias www.domain_name.com ServerSignature Off <IfModule mod_proxy.c> ProxyVia On ProxyRequests Off ProxyPass / http://server_IP_address:9001/ ProxyPassReverse / http://server_IP_address:9001/ ProxyPreserveHost on <Proxy *> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Proxy> </IfModule> </VirtualHost> もちろん、domain_name.comを実際に登録されているドメイン名に置き換える必要があります。また、server_IP_addressをサーバーのパブリックIPアドレスに置き換える必要があります。構成ファイルの編集が終了したら、ファイルを保存して終了します。
次のApacheモジュールをインストールする必要があります:
a2enmod proxy a2enmod proxy_http a2enmod headers
作成した仮想ホストを有効にするには、a2ensiteを実行します コマンド:
a2ensite domain_name
行った変更を有効にするには、Apacheを再起動する必要があります:
apache2ctl restart
サーバーにNginxがインストールされている場合は、新しいサーバーブロックを作成して、ポート番号なしでドメイン名を使用してEtherpadアプリケーションにアクセスできるようにすることができます。
次のコマンドを使用して、新しいetherpadサーバーブロックを作成します。
nano /etc/nginx/sites-available/etherpad.conf
次のコンテンツをファイルに追加します:
server {
listen 80;
server_name domain_name.com;
location / {
proxy_pass http://server_IP_address:9001/
proxy_set_header Host $host;
proxy_buffering off;
}
} domain_name.comを実際に登録されているドメイン名に置き換える必要があります。また、server_IP_addressをサーバーのパブリックIPアドレスに置き換える必要があります。構成ファイルの編集が終了したら、ファイルを保存して終了します。
etherpad仮想ホストをアクティブ化するには、次のコマンドでシンボリックリンクを作成できます:
ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
それが完了したら、Nginx構成をテストします。
nginx -t
Nginxサービスを開始して有効にする前に、Nginx構成テスト中にエラーが発生していないことを確認する必要があります。すべてチェックアウトしたら、次のコマンドを実行できます。
systemctl restart nginx systemctl enable nginx
ステップ9:Etherpadへのアクセス
次に、お気に入りのWebブラウザを開いて、ドメイン名を入力します。
http://domain_name.com/
ブラウザにEtherpadエディタが表示されるはずです。
新しいパッドの名前を入力し、[OK]ボタンをクリックします。
これで、下の画像に示すように、Etherpadエディターが表示されるはずです。
管理者URLにアクセスするには、/admin/を追加します ドメイン名の末尾まで。
http://domain_name.com/admin/
管理者のユーザー名とパスワードの入力を求められます。管理者のユーザー名とパスワードを入力し、[サインイン]ボタンをクリックします。
おめでとう。これで、Etherpadエディターが正常にインストールおよび構成されました。
この記事では、Debian 9にEtherpadをインストールする方法を紹介しました。これで、この素晴らしいオープンソースアプリケーションを引き続き使用して探索することができます。
もちろん、Debian Hostingをご利用の場合は、Debian 9 VPSにEtherpadをインストールする必要はありません。管理者に聞いて、座ってリラックスしてください。管理者がすぐにDebian9にEtherpadをインストールして設定します。
PS。 Debian 9 VPSにEtherpadをインストールする方法についてのこの投稿が気に入った場合は、下の共有ボタンを使用してソーシャルネットワーク上の友達と共有するか、コメントセクションにコメントを残してください。ありがとうございます。