Port already in use, what to do?

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.

Dato che questo argomento è stato utile, aggiungo pure io qualcosa, anche se è vecchio di 3 anni. Oggi ho riscontrato il problema della porta in uso e sono un po’ confuso su quanto accaduto. Riporto solo la sequenza degli eventi, nel caso qualcun altro si trovi nella stessa situazione.

Contesto: sto usando Ubuntu 16.04.3 LTS (ho troppa paura di aggiornare a 18.04) e Discourse 2.3.x (non sono sicuro della versione esatta, lo spiegherò dopo :)).

Ho apportato una modifica (irrilevante) al file app.yml e ho ricompilato l’applicazione.

Ho anche notato che Ubuntu voleva riavviarsi (non ho verificato il motivo), quindi ho eseguito anche il riavvio di Ubuntu.

Alla fine ho finito con l’errore della porta in uso.

Ho scoperto che Apache2 era improvvisamente attivo, quindi l’ho disabilitato:
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).

Infine il forum è tornato online, poichÊ la porta era ora libera.

Quello che non riesco a capire è il motivo per cui è successo: da dove è arrivato Apache2?

Avrei dovuto testare il forum subito dopo il riavvio, maledizione. Ora non so se sia stato l’aggiornamento di Discourse o il riavvio di Ubuntu a causare il problema (potrei forse trovarlo in qualche log, ma non sono più molto bravo con Linux). Ho anche cercato sul forum se Discourse 2.5 installa Apache2 al giorno d’oggi.

La cosa positiva è che l’aggiornamento di Discourse era da tempo necessario. Sono solo molto riluttante ad aggiornare ultimamente, dato che negli ultimi 5 anni ho avuto problemi simili ogni due per tre. Comunque amo ancora Discourse…

Dalla tua descrizione, il modo migliore per capire se un altro aggiornamento causerà problemi è eseguire tre aggiornamenti consecutivi in tre giorni: dovrebbe essere abbastanza semplice da rendere fattibile!

In generale, prevedi che se è passato più di un anno dall’ultimo aggiornamento di Discourse, dovrai eseguire ./launcher rebuild app. Ti consiglio naturalmente di visitare /admin/upgrade più frequentemente :slight_smile:

Se il tuo app.yml chiamava qualcos’altro, devi eseguire

  ./launcher stop irrilevante 

oppure rinominarlo e ricostruirlo.

Discourse non installa nulla al di fuori del container, a parte docker che è un prerequisito per l’installazione.

È probabile che Apache2 sia stato installato dopo l’ultimo riavvio e non abbia potuto prendere la porta finché non hai riavviato la macchina. Usa grep sulla tua cronologia bash per verificare quali pacchetti sono stati installati manualmente.

Grazie a tutti per le idee.

Ho usato rebuild app. E se Discourse non installa nulla di extra (pensavo che nginx e Apache2 sarebbero venuti di default a causa di qualcosa di nuovo)… hmmm. Di certo non ho aggiunto Apache2 io.

Ah. Dopo aver avuto questo DigitalOcean Ubuntu per solo Discourse per anni e anni, ho effettivamente installato Subversion a gennaio, apparentemente senza riavviare. Quell’installazione sembra aver aggiunto Apache, anche se disabilitandolo ho ancora tutte le funzionalità di cui ho bisogno.

Immagino non sia abituato a installazioni che aggiungono spazzatura (sĂŹ, sono sicuro che Apache sia necessario per qualcosa). Questo succede piĂš comunemente su, tipo, Windows o Android :D.

Scusa per il disturbo. D’altra parte, questo è un caso d’uso reale, è sempre bene leggerli come sviluppatore.