Wie man Discourse Forum mit Nginx auf Rocky Linux 9 installiert
Discourse ist eine Open-Source-Community-Diskussionsplattform, die auf der Sprache Ruby basiert. Sie kann als Forum, Chat-Software oder Mailingliste genutzt werden. Sie lässt sich leicht mit anderen Plattformen integrieren und kann über Plugins erweitert werden.
In diesem Lernprogramm lernst du, wie du Discourse Forum mit dem Nginx-Server auf einem Server mit Rocky Linux 9 installierst.
Voraussetzungen
- Ein Server mit Rocky Linux 9 mit mindestens 1 GB RAM und 1 Core CPU. Das Discourse Setup erstellt automatisch eine Swap-Partition auf Systemen mit 1 GB oder weniger RAM. Daher wird empfohlen, ihn auf einem System mit mindestens 2 GB RAM zu installieren.
- Ein Nicht-Root-Benutzer mit
sudo
Rechten. - Einen Domainnamen (
discourse.example.com
), der auf den Server zeigt. - Alles ist auf dem neuesten Stand.
$ sudo dnf update
- Einige wenige Pakete, die dein System benötigt.
$ sudo dnf install wget curl nano unzip yum-utils -y
Einige dieser Pakete sind vielleicht schon auf deinem System installiert.
Schritt 1 – Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet die Firewalld Firewall. Überprüfe den Status der Firewall.
$ sudo firewall-cmd --state running
Die Firewall arbeitet mit verschiedenen Zonen, wobei die öffentliche Zone die Standardzone ist, die wir verwenden werden. Liste alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe angezeigt werden.
cockpit dhcpv6-client ssh
Discourse braucht HTTP- und HTTPS-Ports, um zu funktionieren. Öffne sie.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Füge Masquerade hinzu, da die Anwendung andere Instanzen kontaktieren wird.
$ sudo firewall-cmd --permanent --add-masquerade
Lade die Firewall neu, um die Änderungen zu übernehmen.
$ sudo firewall-cmd --reload
Liste alle Dienste erneut auf.
$ sudo firewall-cmd --permanent --list-services
Du solltest die folgende Ausgabe erhalten.
cockpit dhcpv6-client http https ssh
SELinux konfigurieren
Discourse ist aufgrund der SELinux-Zugriffsrichtlinien nicht erreichbar, auch wenn du die Ports öffnest. Konfiguriere SELinux so, dass es Netzwerkverbindungen zulässt.
$ sudo setsebool -P httpd_can_network_connect 1
Schritt 2 – Git installieren
Installiere Git.
$ sudo dnf install git
Bestätige die Installation.
$ git --version git version 2.31.1
Führe die folgenden Befehle aus, um die Git-Installation zu konfigurieren.
$ git config --global user.name "Your Name" $ git config --global user.email "youremail@example.com"
Schritt 3 – Installiere Docker
Rocky Linux wird mit einer älteren Version von Docker ausgeliefert. Um die neueste Version zu installieren, musst du zuerst das offizielle Docker-Repository installieren.
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Installiere die neueste Version von Docker.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Möglicherweise bekommst du die folgende Fehlermeldung, wenn du versuchst, Docker zu installieren.
ror: Problem: problem with installed package buildah-1:1.26.2-1.el9_0.x86_64 - package buildah-1:1.26.2-1.el9_0.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed - package containerd.io-1.6.9-3.1.el9.x86_64 conflicts with runc provided by runc-4:1.1.3-2.el9_0.x86_64 - package containerd.io-1.6.9-3.1.el9.x86_64 obsoletes runc provided by runc-4:1.1.3-2.el9_0.x86_64 - cannot install the best candidate for the job
Verwende den folgenden Befehl, wenn du die obige Fehlermeldung erhältst.
$ sudo dnf install docker-ce docker-ce-cli containerd.io --allowerasing
Aktiviere den Docker-Daemon und starte ihn.
$ sudo systemctl enable docker --now
Überprüfe, ob er läuft.
? docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2023-01-20 06:49:44 UTC; 6s ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 99263 (dockerd) Tasks: 8 Memory: 28.1M CPU: 210ms CGroup: /system.slice/docker.service ??99263 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Docker benötigt standardmäßig Root-Rechte. Wenn du vermeiden willst, dass du jedes Mal sudo
verwendest, wenn du den Befehl docker
ausführst, füge deinen Benutzernamen der Gruppe docker
hinzu.
$ sudo usermod -aG docker $(whoami)
Um diese Änderung zu aktivieren, musst du dich vom Server abmelden und als derselbe Benutzer wieder anmelden oder den folgenden Befehl verwenden.
$ su - ${USER}
Bestätige, dass dein Benutzer der Docker-Gruppe hinzugefügt wurde.
$ groups navjot wheel docker
Schritt 4 – Discourse herunterladen
Klone das offizielle Discourse Docker GitHub Repository in das Verzeichnis /var/discourse
.
$ sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
Wechsle in das Discourse-Verzeichnis.
$ cd /var/discourse
Entferne Schreib- und Ausführungsrechte aus dem Verzeichnis containers
.
$ sudo chmod 700 containers
Schritt 5 – Discourse konfigurieren
Erstelle die Konfigurationsdatei app.yml
, indem du die Beispieldatei standalone.yml
kopierst.
$ sudo cp samples/standalone.yml containers/app.yml
Öffne die app.yml
zur Bearbeitung.
$ sudo nano containers/app.yml
Domain setzen
Setze die Variable DISCOURSE_HOSTNAME
auf den Domainnamen, den du für dein Forum gewählt hast. Wenn du keinen Domainnamen hast, kannst du hier auch eine IP-Adresse angeben.
DISCOURSE_HOSTNAME: 'discourse.example.com'
Exponierte Ports konfigurieren
Ändere die Zeile "80:80
in "8080:80"
. Dadurch wird der externe HTTP-Port für Discourse auf 8080 geändert, da wir Nginx auf Port 80 verwenden werden. Kommentiere die Zeile "443:443"
aus, da wir SSL extern installieren werden.
expose: - "8080:80" # http #- "443:443" # https
Konfiguriere die E-Mail-IDs für den Administrator
Lege die E-Mail für deinen Administrator-Account und den Entwickler über die Variable DISCOURSE_DEVELOPER_EMAILS
fest. Dieser Schritt ist obligatorisch, da dein Forum sonst nicht hochgefahren werden kann.
DISCOURSE_DEVELOPER_EMAILS: 'navjot@example.com,developer@example.com'
SMTP-Einstellungen konfigurieren
Fülle die folgenden Variablen aus, je nachdem, welchen Transaktions-E-Mail-Dienst du verwendest.
DISCOURSE_SMTP_ADDRESS: smtp.example.com DISCOURSE_SMTP_PORT: 587 DISCOURSE_SMTP_USER_NAME: user@example.com DISCOURSE_SMTP_PASSWORD: your_smtp_password #DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true) DISCOURSE_SMTP_DOMAIN: discourse.example.com # (required by some providers) DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com # (address to send notifications from)
Speichereinstellungen (optional)
Wenn dein Server über wenig Arbeitsspeicher verfügt, kannst du die folgenden Variablen entsprechend konfigurieren, um den Speicherbedarf von Discourse zu verringern.
db_shared_buffers: '128MB' UNICORN_WORKERS: 2
Die Variable db_shared_buffers
ist normalerweise auf 25% des verfügbaren Speichers eingestellt.
GeoLite2-Einstellungen (Optional)
Wenn du die IP-Lookup-Funktion in Discourse nutzen willst, melde dich für den kostenlosen Maxmind Geolite2 Account an und erhalte einen Lizenzschlüssel. Füge diesen Lizenzschlüssel als Wert in die folgende Variable ein.
DISCOURSE_MAXMIND_LICENSE_KEY: your_maxmind_license_key
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Schritt 6 – Installiere Discourse
Führe den folgenden Befehl aus, um deinen Discourse-Container zu booten.
$ sudo ./launcher bootstrap app
Starte die Discourse-Anwendung.
$ sudo ./launcher start app
Öffne den Port, um die Discourse-Anwendung zu testen.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Du kannst jetzt auf das Forum zugreifen, indem du die URLs http://yourserver_IP:8080
oder http://discourse.example.com:8080
in deinem Browser aufrufst. Du wirst den folgenden Bildschirm erhalten.
Schritt 7 – Nginx installieren
Rocky Linux 9 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, musst du das offizielle Nginx-Repository herunterladen.
Erstelle und öffne die Datei /etc/yum.repos.d/nginx.repo
zur Erstellung des offiziellen Nginx-Repositorys.
$ sudo nano /etc/yum.repos.d/nginx.repo
Füge den folgenden Code in die Datei 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
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Installiere den Nginx-Server.
$ sudo dnf install nginx
Überprüfe die Installation.
$ nginx -v nginx version: nginx/1.22.1
Aktiviere und starte den Nginx-Server.
$ sudo systemctl enable nginx --now
Überprüfe den Status des Servers.
$ sudo systemctl status nginx ? nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2023-01-20 07:49:55 UTC; 1s ago Docs: http://nginx.org/en/docs/ Process: 230797 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 230798 (nginx) Tasks: 3 (limit: 12355) Memory: 2.8M CPU: 13ms CGroup: /system.slice/nginx.service ??230798 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??230799 "nginx: worker process" ??230800 "nginx: worker process"
Schritt 8 – SSL installieren
Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Tool Certbot installieren.
Dazu verwenden wir den Snapd-Paketinstaller. Da Rocky Linux nicht mit diesem Paket ausgeliefert wird, installierst du den Snapd-Installer. Er benötigt das EPEL-Repository, um zu funktionieren.
$ sudo dnf install epel-release
Installiere Snapd.
$ sudo dnf install snapd
Aktiviere und starte den Snap-Dienst.
$ sudo systemctl enable snapd --now
Installiere das Snap-Kernpaket und stelle sicher, dass deine Snapd-Version auf dem neuesten Stand ist.
$ sudo snap install core && sudo snap refresh core
Erstelle die notwendigen Links, damit Snapd funktioniert.
$ sudo ln -s /var/lib/snapd/snap /snap $ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Gib den folgenden Befehl ein, um Certbot zu installieren.
$ sudo snap install --classic certbot
Stelle mit folgendem Befehl sicher, dass der Certbot-Befehl ausgeführt werden kann, indem du einen symbolischen Link auf das Verzeichnis /usr/bin
erstellst.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Überprüfe die Installation.
$ certbot --version certbot 1.32.2
Erstelle das SSL-Zertifikat.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m name@example.com -d discourse.example.com
Mit dem obigen Befehl wird ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/discourse.example.com
auf deinem Server heruntergeladen.
Erstelle ein Diffie-Hellman-Gruppenzertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führe einen Probelauf durch.
$ sudo certbot renew --dry-run
Wenn du keine Fehler siehst, ist alles in Ordnung. Dein Zertifikat wird automatisch erneuert.
Schritt 9 – Nginx konfigurieren
Erstelle und öffne die Datei /etc/nginx/conf.d/discourse.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/conf.d/discourse.conf
Füge den folgenden Code in die Datei ein.
# enforce HTTPS server { listen 80; listen [::]:80; server_name discourse.example.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name discourse.example.com; access_log /var/log/nginx/discourse.access.log; error_log /var/log/nginx/discourse.error.log; # SSL ssl_certificate /etc/letsencrypt/live/discourse.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/discourse.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/discourse.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:SSL:10m; 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; resolver 8.8.8.8; http2_push_preload on; # Enable HTTP/2 Server Push # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to # prevent replay attacks. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; # Security / XSS Mitigation Headers # NOTE: X-Frame-Options may cause issues with the webOS app add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header X-Early-Data $tls1_3_early_data; client_max_body_size 100m; location / { proxy_pass http://discourse.example.com:8080/; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } # This block is useful for debugging TLS v1.3. Please feel free to remove this # and use the `$ssl_early_data` variable exposed by NGINX directly should you # wish to do so. map $ssl_early_data $tls1_3_early_data { "~." $ssl_early_data; default ""; }
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Öffne die Datei /etc/nginx/nginx.conf
und bearbeite sie.
$ sudo nano /etc/nginx/nginx.conf
Füge die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf;
ein.
server_names_hash_bucket_size 64;
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Überprüfe 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
Starte den Nginx-Dienst neu, um die neue Konfiguration zu aktivieren.
$ sudo systemctl restart nginx
Schritt 10 – Zugriff und Abschluss der Discourse-Installation
Du kannst auf das Forum zugreifen, indem du die URL https://discourse.example.com
in deinem Browser aufrufst. Du erhältst den folgenden Bildschirm.
Klicke auf die Schaltfläche Registrieren, um fortzufahren. Die E-Mail-ID, die du in der Datei app.yml
angegeben hast, wird für dich vorausgefüllt.
Klicke auf die Schaltfläche “ Registrieren „, um das Administratorkonto zu registrieren. Du gelangst zum E-Mail-Bestätigungsbildschirm.
Wenn deine SMTP-Einstellungen korrekt sind, erhältst du eine E-Mail zur Aktivierung des Kontos. Klicke auf den Link in deiner E-Mail, um die Einrichtung des Kontos abzuschließen.
Klicke auf die Schaltfläche Aktivieren, um die Installation abzuschließen.
Du gelangst zum Bildschirm des Einrichtungsassistenten von Discourse. Gib den Namen und die Beschreibung deines Forums ein und wähle die Sprache. Klicke auf die Schaltfläche Weiter, um fortzufahren.
Als Nächstes wirst du auf die Seite Mitgliedererfahrung weitergeleitet. Wähle die Optionen, die deinen Anforderungen entsprechen, und klicke auf die Schaltfläche Weiter, um fortzufahren.
Als Nächstes wirst du auf die Seite zum Abschluss der Einrichtung weitergeleitet. Du kannst entweder weitere Einstellungen vornehmen oder einfach loslegen und das Forum nutzen. Diese Einstellungen können immer noch über die Administratoreinstellungen konfiguriert werden.
Für unser Tutorial wählen wir “ Mehr konfigurieren „. Du wirst nun aufgefordert, Logos und Banner für dein Forum festzulegen. Klicke auf die Schaltfläche Weiter, um fortzufahren.
Als Nächstes wirst du aufgefordert, grundlegende Stylingoptionen für das Frontend des Forums festzulegen. Klicke auf die Schaltfläche Weiter, um fortzufahren.
Als Nächstes wirst du auf die Seite zur Konfiguration der Organisation weitergeleitet. Fülle die entsprechenden Informationen aus.
Klicke auf die Schaltfläche “ Jump in! „, um fortzufahren. Du wirst zur Startseite des Forums weitergeleitet. Dein Discourse-Forum ist jetzt einsatzbereit.
Schritt 11 – Discourse-Befehle
Aktiviere den Discourse Administrator über die Kommandozeile
Wenn du die Aktivierungs-E-Mail nicht erhältst, kannst du den Administrator-Account auch über die Kommandozeile aktivieren.
Wechsle in das Discourse-Verzeichnis.
$ cd /var/discourse
Rufe die Discourse-Container-Shell auf.
$ sudo ./launcher enter app
Gib den Befehl rails c
ein, um die Rails-Eingabeaufforderung aufzurufen.
root@discourse-app:/var/www/discourse# rails c
Du wirst die folgende Eingabeaufforderung sehen.
[1] pry(main)>
Gib den Befehl ein, um das Administratorkonto zu finden.
[1] pry(main)> User.find_by_email("name@example.com") => #<User:0x00007fdf020229f0 id: 1, username: "username", created_at: Fri, 20 Jan 2023 08:14:36.735552000 UTC +00:00, updated_at: Fri, 20 Jan 2023 14:14:12.094234000 UTC +00:00, name: nil, seen_notification_id: 4, last_posted_at: nil, password_hash: "98c774785bda45b4edbaea90eeb3bd5da00f65487ba6d0b3930082ce098bf174", salt: "ca175ea7f5653ce8122b76b68b549936", active: true, username_lower: "username", last_seen_at: Fri, 20 Jan 2023 23:01:21.001705000 UTC +00:00, admin: true, last_emailed_at: Fri, 20 Jan 2023 09:48:47.896200000 UTC +00:00, trust_level: 1, approved: false, approved_by_id: nil, approved_at: nil, previous_visit_at: Fri, 20 Jan 2023 21:28:23.665502000 UTC +00:00, suspended_at: nil, suspended_till: nil, date_of_birth: nil, views: 0, flag_level: 0, ip_address: #<IPAddr: IPv4:122.161.92.70/255.255.255.255>, moderator: false, title: nil, uploaded_avatar_id: nil, :
Gib q
ein, um zur Eingabeaufforderung zurückzukehren und gib die folgenden Befehle nacheinander ein.
[2] pry(main)> user.approved = true [3] pry(main)> user.save [4] pry(main)> EmailToken.confirm(user.email_tokens.first.token)
Gib zweimal exit
ein, um zur Shell zurückzukehren. Dein Administratorkonto ist nun aktiviert und einsatzbereit.
Discourse sichern
Discourse erstellt standardmäßig alle 7 Tage eine Sicherungskopie der Datenbank. Du findest die Sicherungsdateien im Verzeichnis `/var/discourse/shared/standalone/backups/default
.
$ ls /var/discourse/shared/standalone/backups/default -al total 1480 drwxr-xr-x. 2 navjot tape 4096 Jan 21 03:34 . drwxr-xr-x. 3 navjot tape 4096 Jan 20 12:01 .. -rw-r--r--. 1 navjot tape 1503748 Jan 21 03:34 howtoforge-forums-2023-01-21-033439-v20230119094939.tar.gz
Du kannst die Backup-Einstellungen im Bereich Admin >> Einstellungen >> Backups konfigurieren. Discourse bietet dir die Möglichkeit, die Backups lokal oder in einem Amazon S3-ähnlichen Cloud-Speicher zu speichern.
Du kannst die Backups von der Seite Admin >> Backups herunterladen. Die Wiederherstellung ist standardmäßig deaktiviert. Wenn du die Datenbank wiederherstellen möchtest, musst du die Option Wiederherstellung zulassen im Bereich Admin >> Einstellungen >> Backups aktivieren.
Discourse aktualisieren
Um das Forum zu aktualisieren, kannst du eine von zwei Möglichkeiten nutzen. Die erste Möglichkeit ist, es über das Administrator-Dashboard zu aktualisieren. Die zweite Methode ist die Verwendung einer Kommandozeile.
Wechsle in das Discourse-Verzeichnis.
$ cd /var/discourse
Aktualisiere die Discourse-Installation, indem du dir die neuesten Dateien von GitHub holst.
$ git pull
Erstelle Discourse neu.
$ sudo ./launcher rebuild app
Jedes Mal, wenn du Änderungen an der Datei app.yml
vornimmst, musst du Discourse neu erstellen. Nachdem du die Änderungen vorgenommen hast, führe den obigen Befehl aus. Er zerstört den alten Container, bootet einen neuen und startet ihn.
Discourse stoppen
$ sudo ./launcher stop app
Discourse Logs ansehen
$ sudo ./launcher logs app
Du kannst dir die detaillierten Labs auch ansehen, indem du die URL https://discourse.example.com/logs/
in deinem Browser aufrufst. Du erhältst dann einen ähnlichen Bildschirm.
Rails / Unicorn Logs
Ruby on Rails enthält ein sehr ausführliches Log, das auf die Festplatte geschrieben wird. Außerdem protokolliert der Webserver Unicorn ebenfalls auf der Festplatte. Du kannst sie im Verzeichnis var/discourse/shared/standalone/log/rails
einsehen.
$ ls /var/discourse/shared/standalone/log/rails -al total 552 drwxr-xr-x. 2 navjot tape 4096 Jan 20 07:09 . drwxr-xr-x. 4 root root 4096 Jan 20 07:09 .. -rw-r--r--. 1 navjot tape 0 Jan 20 07:09 production_errors.log -rw-r--r--. 1 navjot tape 361031 Jan 21 11:46 production.log -rw-r--r--. 1 navjot tape 0 Jan 20 07:09 sidekiq.log -rw-r--r--. 1 navjot tape 60919 Jan 20 08:42 unicorn.stderr.log -rw-r--r--. 1 navjot tape 119403 Jan 21 03:34 unicorn.stdout.log
Nginx-Protokolle
Discourse betreibt einen Nginx-Server in einem Docker-Container. Du kannst die Logs an folgendem Ort einsehen.
$ ls /var/discourse/shared/standalone/log/var-log/nginx -al total 1852 drwxr-xr-x. 2 33 tape 4096 Jan 20 07:39 . drwxrwxr-x. 5 root adm 4096 Jan 21 08:04 .. -rw-r--r--. 1 33 tape 1878744 Jan 21 12:18 access.log -rw-r--r--. 1 33 tape 1017 Jan 20 07:45 error.log
Redis-Logs
Du kannst die Logs für den Redis-Datenbankserver unter folgendem Link abrufen. Die neuesten Log-Einträge findest du in der Datei current
.
$ ls /var/discourse/shared/standalone/log/var-log/redis -al total 140 drwxr-xr-x. 2 root root 4096 Jan 20 07:39 . drwxrwxr-x. 5 root adm 4096 Jan 21 08:04 .. -rw-r--r--. 1 root root 127002 Jan 21 12:17 current -rw-------. 1 root root 0 Jan 20 07:39 lock
PostgreSQL-Protokolle
Du kannst die Logs der PostgreSQL-Datenbank an folgendem Ort abrufen.
ls /var/discourse/shared/standalone/log/var-log/postgres -al total 20 drwxr-xr-x. 2 root root 4096 Jan 20 07:39 . drwxrwxr-x. 5 root adm 4096 Jan 21 08:04 .. -rw-r--r--. 1 root root 11400 Jan 21 03:34 current -rw-------. 1 root root 0 Jan 20 07:39 lock
Die aktuellsten Einträge befinden sich in der Datei current
in diesem Verzeichnis.
Die restlichen Einträge findest du in der Datei /var/discourse/shared/standalone/log/var-log
selbst.
ls /var/discourse/shared/standalone/log/var-log -al total 100 drwxrwxr-x. 5 root adm 4096 Jan 21 08:04 . drwxr-xr-x. 4 root root 4096 Jan 20 07:09 .. -rw-r--r--. 1 root adm 40943 Jan 21 12:17 auth.log -rw-r--r--. 1 root adm 0 Jan 20 08:41 kern.log -rw-r-----. 1 root adm 750 Jan 21 08:04 messages drwxr-xr-x. 2 33 tape 4096 Jan 20 07:39 nginx drwxr-xr-x. 2 root root 4096 Jan 20 07:39 postgres drwxr-xr-x. 2 root root 4096 Jan 20 07:39 redis -rw-r--r--. 1 root adm 23041 Jan 21 12:17 syslog -rw-r-----. 1 root adm 70 Jan 21 08:04 user.log
Fazit
Damit ist der Lehrgang abgeschlossen. Du hast das Discourse Forum mit Docker hinter dem Nginx Proxy Webserver auf einem Rocky Linux 9 Server installiert. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.