Rocky Linux 8 安装 Etherpad 协作 Web 编辑器

Etherpad 是一个免费的、开源的、基于 Web 的文件编辑应用程序,可让我们实时协作处理文件。 它是用 Nodejs 编写的,支持成千上万的同时实时用户。 它具有数据导出功能,并在我们的控制下在我们的服务器上运行。 它允许作者和编辑实时查看所有参与者的编辑。

在这篇文章中,我们将向我们展示 Rocky Linux 8 上安装 Etherpad。

先决条件

  • 在 云平台上运行 Rocky Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Rocky Linux 8 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装和配置数据库

首先,使用以下命令启用 MariaDB 版本 10.04 存储库:

dnf module enable mariadb:10.5

接下来,使用以下命令安装 MariaDB 10.5:

dnf install mariadb-server -y

安装后,使用以下命令启动并启用 MariaDB 服务:

systemctl start mariadb 
systemctl enable mariadb

接下来,使用以下命令登录 MariaDB shell:

mysql

连接后,为 Etherpad 创建一个数据库和用户:

create database `etherpaddb`;
create user 'etherpaduser'@'localhost' identified by 'werpassword';

接下来,将所有权限授予 etherpad 数据库:

grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpaddb`.* to 'etherpaduser'@'localhost';

接下来,使用以下命令刷新权限并退出 MariaDB:

flush privileges;
exit;

第 3 步 – 安装 Node.js

Etherpad 是用 Node.js 编写的,所以它必须安装在我们的服务器上。

首先,使用以下命令启用 Node.js 存储库:

dnf module enable nodejs:14

接下来,使用以下命令安装 Node.js:

dnf install nodejs git -y

安装 Node.js 后,使用以下命令验证 Node.js 版本:

node --version

我们将获得以下输出:

v14.17.5

第 4 步 – 在 Rocky Linux 8 上安装 Etherpad

首先,创建一个专用用户来运行 Etherpad:

adduser --system --home /opt/etherpad --create-home --user-group etherpad

接下来,将用户切换到 etherpad 并使用以下命令下载最新版本的 Etherpad:

su - etherpad
cd /opt/etherpad
git clone --branch master git://github.com/ether/etherpad-lite.git

接下来,将目录更改为下载的目录并使用以下命令运行 Etherpad:

cd etherpad-lite
./src/bin/run.sh

如果一切正常,我们将获得以下输出:

[2021-12-05 11:19:21.804] [INFO] server - Installed plugins: 
[2021-12-05 11:19:21.805] [INFO] console - Report bugs at https://github.com/ether/etherpad-lite/issues
[2021-12-05 11:19:21.806] [INFO] console - Wer Etherpad version is 1.8.16 (142a47c)
[2021-12-05 11:19:23.514] [INFO] http - HTTP server listening for connections
[2021-12-05 11:19:23.514] [INFO] console - We can access wer Etherpad instance at http://0.0.0.0:9001/
[2021-12-05 11:19:23.514] [WARN] console - Admin username and password not set in settings.json. To access admin please uncomment and edit "users" in settings.json
[2021-12-05 11:19:23.514] [WARN] console - Etherpad is running in Development mode. This mode is slower for users and less secure than production mode. We should set the NODE_ENV environment variable to production by using: export NODE_ENV=production
[2021-12-05 11:19:23.514] [INFO] server - Etherpad is running

按 CTRL+C 停止 Etherpad。

接下来,编辑 settings.json 文件并定义我们的数据库设置:

nano settings.json

注释掉以下几行:

//  "dbType": "dirty",
//  "dbSettings": {
//    "filename": "var/dirty.db"
//  },

更改以下行:

  "dbType" : "mysql",
  "dbSettings" : {
    "user":     "etherpaduser",
    "host":     "localhost",
    "port":     3306,
    "password": "werpassword",
    "database": "etherpaddb",
    "charset":  "utf8mb4"
  },

  "trustProxy": true,

保存并关闭文件,然后从 Etherpad 用户退出:

exit

第 5 步 – 为 Etherpad 创建一个 Systemd 服务文件

接下来,创建一个 systemd 服务文件来管理 Etherpad 服务:

nano /etc/systemd/system/etherpad.service

添加以下行:

[Unit]
Description=Etherpad, a collaborative web editor.
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad
Environment=NODE_ENV=production
ExecStart=/usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always

[Install]
WantedBy=multi-user.target

保存并关闭文件,然后使用以下命令重新加载 systemd 守护进程:

systemctl daemon-reload

接下来,使用以下命令启动并启用 Etherpad 服务:

systemctl start etherpad
systemctl enable etherpad

我们可以使用以下命令检查 Etherpad 的状态:

systemctl status etherpad

我们应该看到以下输出:

● etherpad.service - Etherpad, a collaborative web editor.
   Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-12-05 11:22:04 UTC; 5s ago
 Main PID: 13518 (node)
    Tasks: 13 (limit: 11411)
   Memory: 104.9M
   CGroup: /system.slice/etherpad.service
           └─13518 /usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js

Dec 05 11:22:04 rockylinux node[13518]:   DEFAULT_CHARACTER_SET_NAME: 'latin1',
Dec 05 11:22:04 rockylinux node[13518]:   DEFAULT_COLLATION_NAME: 'latin1_swedish_ci'
Dec 05 11:22:04 rockylinux node[13518]: } utf8mb4 latin1_swedish_ci
Dec 05 11:22:04 rockylinux node[13518]: [2021-12-05 11:22:04.915] [INFO] plugins - Running npm to get a list of installed plugins...
Dec 05 11:22:08 rockylinux node[13518]: [2021-12-05 11:22:08.268] [INFO] plugins - Loading plugin ep_etherpad-lite...
Dec 05 11:22:08 rockylinux node[13518]: [2021-12-05 11:22:08.270] [INFO] plugins - Loaded 1 plugins
Dec 05 11:22:08 rockylinux node[13518]: [2021-12-05 11:22:08.932] [INFO] APIHandler - Api key file read from: "/opt/etherpad/etherpad-lite/AP>
Dec 05 11:22:09 rockylinux node[13518]: [2021-12-05 11:22:09.000] [INFO] server - Installed plugins:
Dec 05 11:22:09 rockylinux node[13518]: [2021-12-05 11:22:09.001] [INFO] console - Report bugs at https://github.com/ether/etherpad-lite/issu>
Dec 05 11:22:09 rockylinux node[13518]: [2021-12-05 11:22:09.002] [INFO] console - Wer Etherpad version is 1.8.16 (142a47c)

第 6 步 – 将 Nginx 配置为 Etherpad 的反向代理

接下来,我们需要安装和配置 Nginx 作为 Etherpad 的反向代理。

首先,使用以下命令安装 Nginx:

dnf install nginx -y

安装 Nginx 后,使用以下命令启动并启用 Nginx 服务:

systemctl start nginx
systemctl enable nginx

接下来,创建一个 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/etherpad.conf

添加以下配置:

server {
    listen       80;
    server_name  etherpad.example.com;

    access_log  /var/log/nginx/etherpad.access.log;
    error_log   /var/log/nginx/etherpad.error.log;
    

    location / {
        rewrite  ^/$ / break;
        rewrite  ^/locales/(.*) /locales/$1 break;
        rewrite  ^/locales.json /locales.json break;
        rewrite  ^/admin(.*) /admin/$1 break;
        rewrite  ^/p/(.*) /p/$1 break;
        rewrite  ^/static/(.*) /static/$1 break;
        rewrite  ^/pluginfw/(.*) /pluginfw/$1 break;
        rewrite  ^/javascripts/(.*) /javascripts/$1 break;
        rewrite  ^/socket.io/(.*) /socket.io/$1 break;
        rewrite  ^/ep/(.*) /ep/$1 break;
        rewrite  ^/minified/(.*) /minified/$1 break;
        rewrite  ^/api/(.*) /api/$1 break;
        rewrite  ^/ro/(.*) /ro/$1 break;
        rewrite  ^/error/(.*) /error/$1 break;
        rewrite  ^/jserror(.*) /jserror$1 break;
        rewrite  ^/redirect(.*) /redirect$1 break;
        rewrite  /favicon.ico /favicon.ico break;
        rewrite  /robots.txt /robots.txt break;
        rewrite  /(.*) /p/$1;
        
        proxy_pass         http://127.0.0.1:9001;
        proxy_buffering    off;
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        # proxy headers
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_http_version  1.1;


    }
}

保存并关闭文件,然后编辑 nginx.conf 文件并定义 hash_bucket 大小:

nano /etc/nginx/nginx.conf

在 http { 行下方添加以下行:

server_names_hash_bucket_size  64;

保存并关闭文件,然后验证 Nginx 是否有任何语法错误:

nginx -t
We should see the following output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,重启 Nginx 以应用配置更改:

systemctl restart nginx

第 7 步 – 访问 Etherpad Web 界面

现在,打开我们最喜欢的 Web 浏览器并使用 URL http://etherpad.example.com 访问 Etherpad Web 界面。 我们应该看到以下页面:
登录

提供我们的焊盘名称,然后单击“确定”按钮。 我们应该看到以下页面:
Etherpad 仪表板

恭喜! 我们已成功在 Rocky Linux 8 上使用 Nginx 作为反向代理安装了 Etherpad。我们现在可以使用 Etherpad 从中央位置轻松管理我们的内容。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论