This (port conflict) was handled in the script a while ago. Needing to proxy is a whole other deal there are howto topics on that.
This is the guide that the script links to but I don’t want to tear down my production website just to install discourse.
This guide assumes you already have Discourse working - if you don't, it may be hard to tell whether or not the configuration is working.
Da dieser Beitrag hilfreich war, füge ich ihn einfach hinzu, auch wenn er drei Jahre alt ist. Heute bin ich auf das Problem mit dem belegten Port gestoßen und bin etwas verwirrt darüber, was passiert ist. Ich zeige einfach die Reihenfolge der Ereignisse, falls jemand anderes darauf stößt.
Hintergrund: Ubuntu 16.04.3 LTS (zu sehr Angst vor einem Upgrade auf 18.04) und Discourse 2.3.x (bin mir nicht sicher, welche Version, dazu später mehr
).
Ich habe eine (irrelevante) Änderung an app.yml vorgenommen und die App neu aufgebaut.
Außerdem habe ich bemerkt, dass Ubuntu einen Neustart durchführen wollte (ich habe den Grund nicht geprüft), also habe ich Ubuntu ebenfalls neu gestartet.
Am Ende landete ich beim Port-Fehler.
Ich habe herausgefunden, dass Apache2 plötzlich lief, und habe es deaktiviert:
root@Discourse:~# sudo update-rc.d apache2 disable
insserv: warning: current start runlevel(s) (empty) of script apache2' overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script apache2’ overrides LSB defaults (0 1 6).
Schließlich war das Forum wieder online, da der Port nun frei war.
Was ich nicht herausfinden kann, ist, warum das passiert ist? Woher kam Apache2?
Ich hätte das Forum direkt nach dem Neustart testen sollen, verdammt. Jetzt weiß ich nicht, ob das Discourse-Upgrade oder der Ubuntu-Neustart dafür verantwortlich war (das könnte ich wahrscheinlich in einem Log finden, aber ich bin mit Linux nicht mehr so gut vertraut). Ich habe sogar versucht, im Forum herauszufinden, ob Discourse 2.5 heutzutage Apache2 installiert.
Gut ist, dass das Upgrade von Discourse längst überfällig war. Ich bin nur sehr zurückhaltend beim Upgrade, da ich in den letzten fünf Jahren etwa jedes zweite Mal Probleme wie diese hatte. Discourse liebe ich trotzdem…
Aus Ihrer Beschreibung lässt sich schließen, dass der beste Weg, um herauszufinden, ob ein weiteres Upgrade Probleme verursachen wird, darin besteht, drei Tage hintereinander zu upgraden – das sollte eigentlich einfach genug sein, um umsetzbar zu sein!
Im Allgemeinen können Sie erwarten, dass, wenn seit Ihrem letzten Discourse-Upgrade mehr als ein Jahr vergangen ist, Sie ./launcher rebuild app ausführen müssen. Ich empfehle natürlich, öfter auf /admin/upgrade zu gehen ![]()
Wenn deine app.yml etwas anderes genannt hat, musst du
./launcher stop irrelevant
ausführen oder es umbenennen und neu erstellen.
Discourse installiert nichts außerhalb des Containers, außer Docker als Voraussetzung für die Installation.
Wahrscheinlich wurde Apache2 nach dem letzten Neustart installiert und konnte den Port erst nutzen, nachdem Sie den Computer neu gestartet haben. Durchsuchen Sie Ihre Bash-Verlauf, um zu prüfen, welche Pakete manuell installiert wurden.
Danke für die Ideen, ihr alle.
Ich habe die rebuild-App verwendet. Und wenn Discourse nichts Zusätzliches installiert (ich dachte, nginx und Apache2 wären standardmäßig dabei, weil etwas Neues dazukommt)… hmm. Ich habe Apache2 jedenfalls nicht selbst hinzugefügt.
Ah. Nachdem ich diese DigitalOcean-Instanz mit Ubuntu nur für Discourse seit Jahren und Jahren genutzt habe, habe ich im Januar tatsächlich Subversion installiert, anscheinend ohne einen Neustart. Diese Installation fügt scheinbar Apache hinzu, aber selbst wenn ich es deaktiviere, habe ich immer noch die benötigte Funktionalität.
Ich bin wohl nicht mehr so daran gewöhnt, dass Installationen unnötigen Ballast hinzufügen (ja, ich bin mir sicher, dass Apache für etwas gebraucht wird). Das passiert häufiger bei Windows oder Android :D.
Entschuldigt die Umstände. Andererseits ist das ein echter Anwendungsfall, und es ist für Entwickler immer gut, solche Szenarien zu lesen.