GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So installieren Sie den Etherpad Collaborative Web Editor unter Rocky Linux 8

Etherpad ist ein Open-Source-Online-Editor, der die gemeinsame Bearbeitung in Echtzeit im Browser ermöglicht. Es ist in Node.js geschrieben und kann selbst gehostet werden, um mit verschiedenen Plattformen wie WordPress, Drupal, Odoo, Discourse, Joomla usw. zu arbeiten.

In diesem Tutorial installieren wir Etherpad auf einem Rocky Linux 8-Server und verwenden die MariaDB-Datenbank zum Speichern unserer Daten. Wir werden Nginx auch als Reverse-Proxy für die Anwendung verwenden und ein SSL-Zertifikat mit Let's Encrypt installieren, um HTTPS-Verbindungen zu unserer Etherpad-Instanz zu ermöglichen.

Voraussetzungen

  1. Ein System, auf dem Rocky Linux 8 ausgeführt wird.

  2. Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

  3. Ein Domänenname, der auf den Server verweist.

  4. Nodejs installiert. Befolgen Sie unsere Anleitung zur Installation von Nodejs auf einem Rocky Linux 8-Server. Verwenden Sie eine der beiden angegebenen Methoden.

  5. Stellen Sie sicher, dass alles aktualisiert ist.

    $ sudo dnf update
    

Schritt 1 – Firewall konfigurieren

Rocky Linux verwendet Firewalld Firewall. Überprüfen Sie den Status der Firewall.

$ sudo firewall-cmd --state
running

Dies zeigt an, dass es erfolgreich ausgeführt wird.

Die Firewall arbeitet mit verschiedenen Zonen und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listet alle Dienste und Ports auf, die auf der Firewall aktiv sind.

$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe zeigen.

cockpit dhcpv6-client ssh

HTTP- und HTTPS-Ports zulassen.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Öffnen Sie den 9001 Port, der von der Etherpad-Anwendung verwendet wird.

$ sudo firewall-cmd --permanent --add-port=9001/tcp

Überprüfen Sie den Status der Firewall erneut.

$ sudo firewall-cmd --permanent --list-services

Sie sollten eine ähnliche Ausgabe sehen.

cockpit dhcpv6-client http https ssh

Laden Sie die Firewall neu, um die Änderungen zu aktivieren.

$ sudo firewall-cmd --reload

Schritt 2 – Git installieren

Vor der Installation von Etherpad müssen wir Git installieren. Führen Sie den folgenden Befehl aus, um Git zu installieren.

$ sudo dnf install git

Überprüfen Sie die Installation.

$ git --version
git version 2.27.0

Anfangskonfiguration hinzufügen.

$ git config --global user.name "YourName"
$ git config --global user.email "[email protected]"

Listen Sie die Konfiguration auf, die Sie gerade eingestellt haben.

$ git config --list
user.name=YourName
[email protected]

Schritt 3 – MariaDB installieren

Da wir die MariaDB-Datenbank verwenden werden, um die Daten von Etherpad zu speichern, müssen wir sie zuerst installieren und konfigurieren.

Das Rocky Linux AppStream-Repository wird mit MariaDB geliefert. Führen Sie den folgenden Befehl aus, um alle verfügbaren installierten Versionen von MariaDB aufzulisten.

$ sudo dnf module list mariadb
Last metadata expiration check: 1:15:26 ago on Thu 21 Oct 2021 10:20:01 AM UTC.
Rocky Linux 8 - AppStream
Name                          Stream                         Profiles                                         Summary
mariadb                       10.3 [d]                       client, galera, server [d]                       MariaDB Module
mariadb                       10.5                           client, galera, server [d]                       MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Die Standardversion ist auf 10.3 eingestellt. Sie können jedoch die neueste Version mit dem folgenden Befehl installieren.

$ sudo dnf module enable mariadb:10.5

Installieren Sie MariaDB.

$ sudo dnf install mariadb-server

Aktivieren und starten Sie den MariaDB-Dienst.

$ sudo systemctl enable mariadb --now

Überprüfen Sie den Status des Dienstes.

$ sudo systemctl status mariadb

Sichern Sie den MariaDB-Server.

$ sudo mysql_secure_installation

Sie werden mit verschiedenen Eingabeaufforderungen konfrontiert. Beantworten Sie sie wie folgt.

Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] Type y
Change the root password? [Y/n] Type n
Remove anonymous users? [Y/n] Type y
Disallow root login remotely? [Y/n] Type y
Remove test database and access to it? [Y/n] Type y
Reload privilege tables now? [Y/n] Type y
ein

Sie können sich jetzt mit dem folgenden Befehl mit dem MariaDB-Server verbinden.

$ sudo mysql 

Schritt 4 – MariaDB konfigurieren

Melden Sie sich bei der MariaDB-Shell an.

$ sudo mysql

Erstellen Sie eine neue Datenbank für Etherpad.

$ create database `etherpad_lite_db`;

Erstellen Sie einen neuen Datenbankbenutzer.

$ CREATE USER 'etherpaduser'@'localhost' identified by 'password';

Verwenden Sie ein sicheres Passwort.

Erteilen Sie dem Benutzer Berechtigungen für die Datenbank.

$ grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to '<etherpaduser>'@'localhost';

Beenden Sie die MySQL-Shell.

$ exit

Schritt 5 – Etherpad herunterladen und installieren

Um Etherpad zu installieren, laden wir den Quellcode herunter und erstellen ihn.

Der erste Schritt besteht darin, ein neues etherpad zu erstellen Benutzer mit dem folgenden Befehl.

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

Dieser Befehl erstellt ein --system Benutzer, was bedeutet, dass er sich nicht anmelden kann und kein Passwort hat. Wir geben ihm auch ein Home-Verzeichnis /opt/etherpad Dort laden wir Etherpad herunter. Die --create-home flag erstellt das Home-Verzeichnis mit den richtigen Berechtigungen. Die --user-group Flag erstellt eine Gruppe mit demselben Namen wie der Benutzername.

Wechseln Sie zum etherpad Benutzer, um die Anwendung herunterzuladen und zu installieren.

$ sudo -u etherpad bash

Wechseln Sie zu /opt/etherpad Verzeichnis.

[[email protected] user] cd /opt/etherpad

Klonen Sie das Etherpad-Repository in /opt/etherpad Verzeichnis.

[[email protected] ~]$ git clone --branch master git://github.com/ether/etherpad-lite.git

Wechseln Sie in das neu heruntergeladene Verzeichnis.

[[email protected] ~]$ cd etherpad-lite

Führen Sie die run.sh des Etherpads aus Skript zum Einrichten und Installieren von Abhängigkeiten.

[[email protected] etherpad-lite]$ src/bin/run.sh

Sie können die URL http://YOURSERVERIP:9001 starten im Browser, um Etherpad zu starten. Sie erhalten den folgenden Bildschirm.

Es gibt ein Problem mit der obigen Installation. Es erfordert, dass Sie die aktuelle Shell geöffnet lassen, während Node im Vordergrund ausgeführt wird. Um es zu einer dauerhaften Installation zu machen, müssen wir Etherpad als Dienst ausführen. Drücken Sie Strg + C auf Ihrem Terminal, um die Ausführung von Etherpad zu beenden.

Schritt 6 – Etherpad konfigurieren

Bevor wir fortfahren, müssen wir einige Einstellungen vornehmen und unsere Installation gemäß unseren Anforderungen konfigurieren. Etherpad speichert seine Einstellungen in der settings.json Datei im Installationsverzeichnis.

Öffnen Sie die Datei zum Bearbeiten.

[[email protected] etherpad-lite]$ nano settings.json

Die Einstellungsdatei ist als JSON formatiert. Das erste, was Sie konfigurieren müssen, sind die Datenbankeinstellungen.

Suchen Sie den folgenden Code und kommentieren Sie ihn aus, indem Sie // einfügen davor.

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

Suchen Sie dann den folgenden Code und ändern Sie seine Werte wie folgt. Achten Sie darauf, /* zu entfernen und */ am Anfang und am Ende.

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

Scrollen Sie schließlich ein wenig nach unten, um den trustProxy zu finden Einstellung und ändern Sie den Wert von false auf true .

  "trustProxy": true,

Diese Einstellung ist erforderlich, damit Etherpad mit Nginx zusammenarbeitet.

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.

Beenden Sie die Etherpad-Benutzer-Shell.

[[email protected] etherpad-lite]$ exit

Schritt 7 – Etherpad-Dienst erstellen

Um Etherpad beim Booten zu starten und den Prozess mit systemctl zu verwalten , müssen wir eine Servicedatei erstellen.

Erstellen und öffnen Sie die Dienstdatei.

$ sudo nano /etc/systemd/system/etherpad.service

Fügen Sie den folgenden Code ein.

[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

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.

Laden Sie den Service-Daemon neu, um die neue Konfiguration einzufügen.

$ sudo systemctl daemon-reload

Aktivieren Sie Etherpad-Dienst starten.

$ sudo systemctl enable etherpad --now

Überprüfen Sie den Status des Dienstes.

$ sudo 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 Thu 2021-10-21 15:06:53 UTC; 6s ago
 Main PID: 47228 (node)
    Tasks: 13 (limit: 11411)
   Memory: 102.8M
   CGroup: /system.slice/etherpad.service
           ??47228 /usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
.......

Schritt 8 – SSL mit Let's Encrypt installieren

Um ein SSL-Zertifikat mit Let's Encrypt zu installieren, müssen wir das Certbot-Tool installieren.

Zuerst müssen Sie das EPEL-Repository herunterladen und installieren.

$ sudo dnf install epel-release

Führen Sie die folgenden Befehle aus, um Certbot zu installieren.

$ sudo dnf install certbot

Generieren Sie das SSL-Zertifikat.

$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -m [email protected] -d example.com

Der obige Befehl lädt ein Zertifikat in /etc/letsencrypt/live/etherpad.example.com herunter Verzeichnis auf Ihrem Server.

Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew und zum Bearbeiten öffnen.

$ sudo nano /etc/cron.daily/certbot-renew

Fügen Sie den folgenden Code ein.

#!/bin/sh
certbot renew --cert-name etherpad.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Schritt 9 – Nginx installieren und konfigurieren

Rocky Linux wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das Nginx-Repository hinzufügen.

Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo zum Bearbeiten.

$ sudo nano /etc/yum.repos.d/nginx.repo

Fügen Sie den folgenden Code ein.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.

Nginx installieren.

$ sudo dnf install nginx

Aktivieren Sie den Nginx-Dienst.

$ sudo systemctl enable nginx

Als nächstes erstellen und öffnen Sie die Datei /etc/nginx/conf.d/etherpad.conf zum Bearbeiten.

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

Fügen Sie den folgenden Code ein.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  etherpad.example.com;

    access_log  /var/log/nginx/etherpad.access.log;
    error_log   /var/log/nginx/etherpad.error.log;
    
    ssl_certificate      /etc/letsencrypt/live/etherpad.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/etherpad.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    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;

        # websocket proxying
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
    }
}

# we're in the http context here
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  etherpad.example.com;
    return 301   https://$host$request_uri;
}
zurück

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Wenn Sie die folgende Fehlermeldung erhalten, müssen Sie die Datei /etc/nginx/nginx.conf bearbeiten um die Größe der Variable server_names_hash_bucket_size hinzuzufügen/anzupassen .

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

Öffnen Sie die Datei /etc/nginx/nginx.conf zum Bearbeiten.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu .

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden. Validieren Sie Nginx erneut.

Starten Sie abschließend den Nginx-Dienst, um die neue Konfiguration zu aktivieren.

$ sudo systemctl start nginx

Starten Sie die URL https://etherpad.example.com in Ihrem Browser und die Etherpad-Startseite wird geöffnet. Sie können es jetzt verwenden, um Dokumente zu bearbeiten und Mitarbeiter einzuladen.

Aktualisiere Etherpad

Das Aktualisieren von Etherpad ist einfach. Der erste Schritt besteht darin, zur Etherpad-Benutzeroberfläche zu wechseln.

$ sudo -u etherpad bash

Wechseln Sie zu /opt/etherpad/etherpad-lite Verzeichnis.

[[email protected] user] cd /opt/etherpad/etherpad-lite

Ziehen Sie das neueste Etherpad-Repository in /opt/etherpad/etherpad-lite Verzeichnis.

[[email protected] ~]$ git pull origin

Führen Sie die run.sh des Etherpads aus Skript, um die neueste Version von Etherpad einzurichten.

[[email protected] etherpad-lite]$ src/bin/run.sh

Schlussfolgerung

In diesem Tutorial haben wir Etherpad Collaborative Editor mit Nginx-Server eingerichtet und mit Let’s Encrypt SSL-Zertifikaten gesichert. Ihre Etherpad-Installation ist einsatzbereit, die Sie mit weiteren Funktionen erweitern können, darunter authentifizierte Benutzer, Plugins und Anpassungen der Benutzeroberfläche.

Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Rocky Linux
  1. So installieren Sie phpMyAdmin unter Rocky Linux

  2. So installieren Sie MariaDB 10.6 auf Rocky Linux 8

  3. So installieren Sie GoAccess Web Log Analyzer unter Rocky Linux 8

  4. So installieren Sie Python 3.9 auf Rocky Linux 8

  5. So installieren Sie MariaDB unter Rocky Linux 8

So installieren Sie MariaDB 10 auf AlmaLinux 8 oder Rocky Linux

So installieren Sie TeamViewer unter Rocky Linux 8

Installieren Sie MariaDB 10.6 auf Rocky Linux 8

So installieren Sie MariaDB Server auf Rocky Linux 8

So installieren Sie die kollaborative Notizplattform Etherpad unter Linux

So installieren Sie den vim-Editor unter Rocky Linux 8