Schwierigkeiten bei der Installation auf VM mit CPanel und Apache

Hallo zusammen!

**Dies ist mein erster Beitrag. **

Ich bin ein neuer Discourse-Benutzer, der von phpBB kommt.
Vor zwei Wochen habe ich Discourse in einem Docker-Container mit Nginx installiert, da Apache standardmäßig die Ports 80 und 443 verwendet. Ich habe die Schritte in den Installationsanleitungen und der Nginx-Multisite-Konfiguration sorgfältig befolgt.

Ich konnte das Forum eine Woche lang ausführen und nutzen und habe mich nur gelegentlich angemeldet, um mich mit der Plattform vertraut zu machen. Als ich einen der Benutzer bat, sich zu registrieren und es zu testen, stürzte das Forum am nächsten Tag ab. Der Browser zeigte die Meldung an: „Die Software, die dieses Diskussionsforum antreibt, ist auf ein unerwartetes Problem gestoßen.“ Ich konnte es nicht beheben, also habe ich das gesamte Forum von Grund auf neu installiert und dann die Threads aus dem letzten verfügbaren Backup wiederhergestellt. Das war letzten Donnerstag. Danach war das Forum wieder online. Jetzt ist es wieder mit einem Nginx-Fehler 502 Bad Gateway online. Ich habe direkt die App neu erstellt und sie stürzte erneut mit dem Fehler ab:

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 580 exit 1>.

Das Gleiche ist letzte Woche immer wieder passiert und hat mich dazu veranlasst, alles von Grund auf neu zu installieren. Das Forum ist praktisch inaktiv, da ich es noch nicht öffentlich gemacht habe. Ich habe Angst vor der Vorstellung, was passieren könnte, wenn es ohne Aktivität weiter abstürzt, wenn eine größere Benutzergruppe vorhanden ist? Führen Sie diese Befehle aus: ./launcher enter app

**cd /var/www/discourse**
**su discourse -c 'bundle exec rake db:migrate'**

Und in der Antwort sehe ich Folgendes, was mir aufgefallen ist:

connection to server on socket " /var/run/postgresql/.s.PGSQL.5432" failed: FATAL: the database system is starting up

Ich habe versucht, Postgres manuell neu zu starten und den Rebuild erneut auszuführen, aber der Prozess wurde erneut mit dieser Fehlermeldung unterbrochen:

**FAILED**
**--------------------**
**Pups::ExecError: if [ -f /root/install_postgres ]; then**
**/root/install_postgres && rm -f /root/install_postgres**
**elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then**
**socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1**
**fi**
** failed with return #<Process::Status: pid 18 exit 1>**
**Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'**
**exec failed with the params {"tag"=>"db", "cmd"=>"if [ -f /root/install_postgres ]; then\n /root/install_postgres && rm -f /root/install_postgres\nelif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then\n socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container exit ; 1\nfi\n"}**
**bootstrap failed with exit code 1**

Ich bin kein erfahrener Benutzer, um den Fehler zu identifizieren, aber ich vermute, dass Postgres irgendwann ausfällt. Das hat mich letzte Woche dazu veranlasst, alles neu zu starten und von vorne zu beginnen, aber ich glaube nicht, dass das eine übliche oder gesunde Praxis für irgendjemanden ist.

Discourse läuft auf einem Server mit 4 Kernen, 6 GB RAM und 180 GB Speicherplatz. Ich betreibe derzeit nur diese Installation von Discourse, daher bin ich nach meinem Verständnis nicht durch die Hardware eingeschränkt.

Willkommen, @Gustavo_Rip! Tut mir leid, dass Sie Probleme haben.

Haben Sie eine Standardinstallation durchgeführt? Bei einer Standardinstallation benötigen Sie weder Nginx noch Apache (und beide verwenden standardmäßig die Ports 80 und 443). Wenn Sie eines davon installiert haben, sollten Sie es vor dem Start entfernen.

Benötigen Sie Multisite? Selbst wenn Sie es tun, würde ich empfehlen, zuerst eine Standardinstallation durchzuführen und dann dieser Anleitung zu folgen: Setup Multisite Configuration with Let’s Encrypt and no Reverse Proxy. Ich habe gestern jemandem damit geholfen, und es scheint, dass es einwandfrei funktioniert, wenn Sie die richtigen Hostnamen verwenden und Cloudflare nicht mit orangefarbiger Wolke verwenden.

2 „Gefällt mir“

Danke pfaffmann!!

Glücklicherweise bin ich keiner dieser Leute, die leicht aufgeben, obwohl mich diese nachfolgenden Probleme beunruhigen, zumal ich mit dieser Plattform nicht zu 100 % vertraut bin.

Standardmäßig hat mein CloudServer Apache installiert, und wenn ich es entferne, verursacht es Probleme mit CPanel und anderen Funktionen. Ich habe es während der ersten Installation ausprobiert, weil ich gelesen habe, dass nginx viel besser und schneller ist, aber ich hatte die von mir erwähnten Probleme. Daher habe ich das Betriebssystem auf dem Server neu installiert und von vorne begonnen, dieser Empfehlung folgend:

Es ist nicht so, dass ich mehrere Websites habe, zumindest noch nicht, da mein CloudServer bis zu 5 Konten zulässt.

Was die Standardinstallation betrifft, so habe ich alle Schritte zur Installation von Docker, Discourse, Certbot und zum Herunterladen der Let’s Encrypt-Zertifikate befolgt, aber als ich discourse-setup ausführte, musste ich die manuelle Konfiguration gemäß dem obigen Link durchführen und die Datei app.yml manuell konfigurieren, um den Rebuild durchzuführen.

Sie wollen CPanel wirklich nicht. Es fügt nichts hinzu und erschwert die Installation von Discourse erheblich. Und wenn Sie es haben, können Sie die NGinx-Anweisungen nicht befolgen, da Apache bereits im Weg ist.

Wenn Sie Apache und CPanel entfernen können, tun Sie das. Wenn nicht, empfehle ich einen anderen Hosting-Dienst.

Tatsächlich funktioniert das, was Sie haben, möglicherweise überhaupt nicht. Können Sie Folgendes ausführen:

docker run hello-world

1 „Gefällt mir“

Welchen Hosting-Service empfehlen Sie? Oder welcher wird am häufigsten für Discourse-Installationen verwendet?

Ja! Das ist die Nachricht:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Alles, was kein CPanel installiert. Es gibt mehrere Themen über empfohlene. Digital Ocean ist einfach.

Ah. Dann, wenn Sie Apache und CPanel einfach loswerden könnten, wären Sie in guter Verfassung. Das scheint der einfachste Weg von dort aus zu sein, wo Sie sind.

Der andere Weg ist, CPanel beizubehalten und zu versuchen, Ihr bestehendes Apache zu einem Reverse-Proxy zu machen. Sie sind jedoch auf sich allein gestellt, da es zu viele installationsspezifische Fallstricke gibt, als dass die Leute hier viel Hilfe leisten könnten.

[quote=„Gustavo_Rip, post:6, topic:358157”]
Welchen Hosting-Dienst empfehlen Sie?
[/quote]

Viele Vorschläge hier:

Danke @pfaffman für deine Zeit und deine Antworten!!

Ich glaube nicht, dass ich Apache und CPanel entfernen werde. Vielleicht kann mein Cloud-Server-Anbieter Apache-Ports so modifizieren, dass sie nicht die gleichen wie Discourse verwenden, wodurch nginx eliminiert wird, oder CPanel für Ferozo oder einen anderen Dienst modifizieren. Ich weiß es nicht, aber ich werde fragen.

Mit freundlichen Grüßen!

1 „Gefällt mir“