如何在AlmaLinux 9上安装Etherpad如何在AlmaLinux 9上安装Etherpad如何在AlmaLinux 9上安装Etherpad如何在AlmaLinux 9上安装Etherpad
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在AlmaLinux 9上安装Etherpad

发表 admin at 2025年2月28日
类别
  • 未分类
标签
コアサーバーV2プランご契約でドメイン更新費用が永久無料

Etherpad 是 Google Docs 和 Zoho Writer 等服务的免费开源替代品。 Etherpad 是一款适合您团队的协作式实时文本编辑器,可以随时随地访问,因为 Etherpad 是基于 Web 的文本编辑器。

Etherpad 上的任何更改都是实时发生的,并且 etherpad 还支持团队的版本控制和内置格式。 Etherpad 是一个高度可定制的编辑器,支持各种插件。并且还支持现代文档格式,如doc、pdf、odt、markdown等。

本教程将向您展示如何在带有 MariaDB 数据库服务器和 Nginx Web 服务器的 AlmaLinux 9 服务器上安装 Etherpad。您还可以通过 SSL 证书保护 Etherpad,以实现安全访问。

先决条件

要完成本教程,请确保您具备以下条件:

  • AlmaLinux 9 服务器 - 该演示使用主机名为 almalinux9 的 AlmaLinux。
  • 具有 sudo 权限的非 root 用户。
  • 域名指向服务器IP地址。
  • 通过 Letsecnrypt 和 Certbot 生成 SSL 证书。

安装依赖项

在安装 Etherpad 之前,您必须安装 Etherpad 所需的一些依赖项,包括:

  • 开发工具
  • Node.js 和 NPM(节点包管理器)
  • MariaDB 数据库服务器
  • Nginx 网络服务器

完成以下步骤来安装 Etherpad 依赖项。

安装开发工具

首先,您必须在AlmaLinux服务器上安装“开发工具”。输入以下 dnf 命令来安装“开发工具”,输入 y,然后按 ENTER 继续。

sudo dnf group install "Development Tools"

接下来,运行以下命令来安装一些附加依赖项。出现提示时,输入 y 进行确认,然后按 ENTER。

sudo dnf install gzip git curl python3-devel openssl-devel pkg-config

安装 Node.js 和 NPM

Etherpad 是一个基于 Web 的协作和实时编辑器,主要使用 Node.js 编写。要安装它,您必须安装 Node.js JavaScript 运行时和 NPM(节点包管理器)。

在撰写本文时,Etherpad 至少需要 Node.js v16,默认情况下,AlmaLinux appstream 存储库上提供该版本,您可以通过 DNF 安装它。

运行以下 dnf 命令来安装 Node.js 和 NPM。输入 y 确认安装,然后按 ENTER。

sudo dnf install nodejs npm

安装 Node.js 后,运行以下命令将 /usr/local/bin 目录添加到 PATH 环境变量中。这将确保通过 NPM 安装的一些二进制文件可以在服务器上运行。

echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
source ~/.bashrc

接下来,运行以下命令找到 Node.js 和 NPM 的二进制文件。

which node
which npm

然后,使用以下命令验证 Node.js 和 NPM 版本。

node --version
npm --version

显示的输出确认 Node.js v16 和 NPM 8.x 已安装,并且两个二进制文件都位于 /bin 目录中。

安装 MariaDB 服务器

默认情况下,安装的 Etherpad 使用 SQLite 作为数据库。您可以使用 MariaDB/MySQL 作为 Etherpad 安装的大型部署的数据库。

运行下面的 dnf 命令来安装 MariaDB Server。出现提示时,输入 y 进行确认,然后按 ENTER。

sudo dnf install mariadb-server

安装 MariaDB 后,运行以下命令来启动并启用 MariaDB 服务。

sudo systemctl start mariadb
sudo systemctl enable mariadb

然后,使用以下命令验证 MariaDB 服务状态。

sudo systemctl status mariadb

如果 MariaDB 服务器正在运行,输出应显示如下:

安装 Nginx Web 服务器

安装 MariaDB 服务器后,您将安装 Nginx Web 服务器,该服务器将用作 Etherpad 的反向代理。因此,在继续之前,请确保您有一个指向您的服务器 IP 地址的域名以及通过 Letsencrypt 和 Certbot 生成的 SSL 证书。

运行下面的 dnf 命令来安装 Nginx Web 服务器。出现提示时,输入确认并按 ENTER。

sudo dnf install nginx

现在,运行以下命令来启动并启用 Nginx 服务。

sudo systemctl start nginx
sudo systemctl enable nginx

之后,输入以下命令验证Nginx服务并确保该服务正在运行。

sudo systemctl status nginx

如果 Nginx 服务正在运行,您应该得到如下输出:

接下来,运行以下命令以打开服务器上的 HTTP 和 HTTPS 端口。

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

使用以下命令验证开放端口和服务的列表。您应该看到在firewalld 上启用了HTTP 和HTTPS。

sudo firewall-cmd --list-all

配置 MariaDB 服务器

在本节中,您将使用 mariadb-secure-installation 实用程序保护 MariaDB 服务器,然后创建将用于 Etherpad 的新数据库和用户。

运行以下命令开始保护 MariaDB 服务器。

sudo mariadb-secure-installation

该命令执行后,会询问您以下配置:

  • 将MariaDB root用户的身份验证方法更改为unix_socket。输入n作为否。
    设置MariaDB root密码。输入 y 确认并输入新的 MariaDB root 密码并重复。
    禁用 MariaDB root 用户的远程登录。输入y进行确认。
    从 MariaDB 中删除默认数据库测试。输入y进行确认。
    从 MariaDB 中删除匿名用户。输入y进行确认。
    最后,再次输入y重新加载表权限以应用更改。

确保 MariaDB 服务器安全后,您接下来将创建一个新的 MariaDB 数据库和用户。

使用下面的 mariadb 命令登录 MariaDB 服务器。

sudo mariadb -u root -p

运行以下查询为 Etherpad 创建新的 MariaDB 数据库和用户。在此示例中,您将创建一个新数据库 etherpad_lite_db 和密码为 StrongPasswordEtherpadDB 的用户 etherpaduser。

CREATE DATABASE etherpad_lite_db CHARACTER SET utf8mb4;
CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to etherpaduser@localhost;
FLUSH PRIVILEGES;

现在,运行以下查询来验证 MariaDB 用户 etherpaduser 的权限。

SHOW GRANTS FOR etherpaduser@localhost;
quit

您会注意到 MariaDB 用户 etherpaduser 有权访问数据库 etherpad_lite_db。

输入 quit 以退出 MariaDB。

下载并安装 Etherpad

在本节中,您将通过创建系统用户、下载 Etherpad 源代码、安装 Etherpad 依赖项、将 Etherpad 与 MariaDB 数据库集成来开始 Etherpad 安装,然后通过命令行运行来验证安装。

首先,运行以下命令创建新的系统用户和组“etherpad”。该用户将用于运行 Etherpad 服务。

sudo groupadd etherpad
sudo adduser -r -M -d /opt/etherpad-lite -g etherpad etherpad

通过git将Etherpad源代码下载到目标目录/opt/etherpad-lite。

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

下载 Etherpad 源代码后,运行以下命令将目录 /opt/etherpad-lite 的所有权更改为用户和组“etherpad”。

sudo chown -R etherpad:etherpad /opt/etherpad-lite

接下来,将工作目录移动到 /opt/etherpad-lite 目录并使用以下命令安装 Etherpad 依赖项。

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad

执行命令后,您应该得到如下的安装过程:

安装完成后,使用以下 nano 编辑器命令打开 Etherpad 配置 settings.json。

nano settings.json

更改 Etherpad 安装的标题。

  "title": "Etherpad AlmaLinux 9",

将 Etherpad 运行的默认 IP 地址更改为 localhost 或 127.0.0.1。

  "ip": "127.0.0.1",
  "port": 9001,

删除下面的默认数据库配置。

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

更改详细信息数据库以使用 MySQL/MariaDB 服务器,如下所示。并且一定要更改数据库名称、用户和密码。

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

完成后保存文件并退出编辑器。

接下来,执行以下命令来验证并运行 Etherpad。

/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js

如果数据库配置和Etherpad安装成功,将显示以下输出:

按 Ctrl+c 终止该过程。

将 Etherpad 作为 Systemd 服务运行

安装 Etherpad 后,您现在将把 Etherpad 设置为 systemd 服务。这允许您在后台运行 Etherpad 并通过 systemctl 命令行轻松管理 Etherpad。

首先,使用以下 nano 编辑器命令创建一个新的 systemd 服务文件 /lib/systemd/system/etherpad.service。

sudo nano /lib/systemd/system/etherpad.service

将以下配置插入到文件中。

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target mariadb.service nginx.service
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always
[Install]
WantedBy=multi-user.target

完成后保存并关闭文件。

现在,运行以下命令重新加载 systemd 管理器并将 Etherpad 服务文件应用到您的系统。

sudo systemctl daemon-reload

然后,使用以下命令启动并启用 Etherpad 服务。

sudo systemctl start etherpad
sudo systemctl enable etherpad

使用以下命令验证 Etherpad 服务。如果 Etherpad 服务正在运行,您应该会得到诸如“活动(正在运行)”之类的输出。

sudo systemctl status etherpad

您还可以使用以下命令验证系统上打开的端口列表。您应该看到 Etherpad 使用该端口 9001。

ss -tulpn | grep 9001

将 Nginx 配置为反向代理

此时,Etherpad 已启动并在端口 9001 上运行。为了使最终用户可以访问它,您可以使用 Nginx,它将用作反向代理。在开始之前,请确保您拥有将用于 Etherpad 的域名,并确保您已通过 Letsencrypt 和 Certbot 生成 SSL 证书。

使用下面的 nano 编辑器命令创建新的 Nginx 服务器块配置 /etc/nginx/conf.d/etherpad.conf。

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

插入以下配置,并确保更改域名和 SSL 证书路径的详细信息。

# enforce HTTPS
server {
    listen       80;
    server_name  etherpad.hwdomain.io;
    return 301   https://$host$request_uri;
}
# we're in the http context here
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen       443 ssl http2;
    server_name  etherpad.hwdomain.io;
    access_log  /var/log/nginx/eplite.access.log;
    error_log   /var/log/nginx/eplite.error.log;
    ssl_certificate      /etc/letsencrypt/live/etherpad.hwdomain.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.hwdomain.io/privkey.pem;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
    location / {
        proxy_pass         http://127.0.0.1:9001;
        proxy_buffering    off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
        proxy_set_header   Host $host;
        proxy_pass_header  Server;
        # Note you might want to pass these headers etc too.
        proxy_set_header    X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
        proxy_set_header    X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
        proxy_set_header    X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
        proxy_http_version  1.1; # recommended with keepalive connections
        # WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
    }
}

完成后保存文件并关闭编辑器。

现在,运行以下命令以确保您拥有正确且正确的配置。如果成功,您应该收到一条消息,例如“语法正确 - 测试成功”。

sudo nginx -t

接下来,输入以下命令重新启动 Nginx 服务并应用更改。

sudo systemctl restart nginx

之后,启动您的网络浏览器并访问 Etherpad 安装域名(即:https://etherpad.hwdomain.io/)。您应该会看到 Etherpad 协作编辑器的默认主页。

现在,通过输入键盘名称创建一个新键盘,然后单击确定。

下面您可以看到现在开始使用 Etherpad 作为协作编辑器。

结论

恭喜,您已经在 AlmaLinux 9 服务器上完成了 Etherpad 与 MariaDB 数据库和 Nginx Web 服务器的安装。除此之外,您还使用 SSL 证书保护 Etherpad。您现在可以开始使用 Etherpad 作为与您的朋友/群组/团队的主要协作编辑器。

©2015-2025 Norria support@alaica.com