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.

Dado que este tema fue útil, lo ampliaré aunque tenga tres años. Hoy me encontré con el problema del puerto en uso y me desconcertó lo sucedido. Solo muestro el orden de los eventos por si alguien más se topa con esto.

Antecedentes: Ejecuto Ubuntu 16.04.3 LTS (demasiado asustado para actualizar a 18.04) y Discourse 2.3.x (no sé exactamente cuál, la razón de eso luego :)).

Hice un cambio (irrelevante) en app.yml y reconstruí la aplicación.

También noté que Ubuntu quería reiniciarse (no verifiqué la razón), así que también reinicié Ubuntu.

Y terminé con el problema de error de puerto.

Descubrí que Apache2 estaba de repente en ejecución, así que lo desactivé:
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).

Y finalmente recuperé el foro, ya que el puerto quedó libre.

Lo que no logro entender es por qué ocurrió esto. ¿De dónde salió Apache2?

Debería haber probado el foro inmediatamente después del reinicio, maldita sea. Ahora no sé si la actualización de Discourse o el reinicio de Ubuntu fueron los responsables (probablemente pueda encontrarlo en algún registro, pero ya no soy muy bueno con Linux). Incluso intenté buscar en el foro si Discourse 2.5 instala Apache2 en estos días.

Lo bueno es que actualizar Discourse estaba muy atrasado. Simplemente soy muy reacio a actualizar en la actualidad, ya que en los últimos cinco años he tenido problemas como este casi cada dos veces. Aún así, sigo amando Discourse…

Según tu descripción, la mejor manera de saber si otra actualización causará un problema es realizar tres actualizaciones consecutivas; ¡debería ser lo suficientemente sencillo como para que sea viable!

En general, espera que si ha pasado más de un año desde tu última actualización de Discourse, necesites ejecutar ./launcher rebuild app. Por supuesto, te recomiendo visitar /admin/upgrade con más frecuencia :slight_smile:

Si tu app.yml llamaba a algo diferente, necesitas

  ./launcher stop irrelevant

O renómbralo y reconstrúyelo.

Discourse no instala nada fuera del contenedor, aparte de Docker como prerequisito de instalación.

Es probable que Apache2 se haya instalado después del último reinicio y no pudo tomar el puerto hasta que reiniciaste la máquina. Busca en tu historial de bash para verificar qué paquetes se instalaron manualmente.

Gracias a todos por las ideas.

Sí utilicé rebuild app. Y si Discourse no instala nada extra (pensaba que nginx y Apache2 vendrían por defecto por algo nuevo)… hmmm. Ciertamente no he añadido Apache2 yo mismo.

Ah. Después de tener este Ubuntu de DigitalOcean para solo Discourse durante años y años, en realidad instalé Subversion en enero, aparentemente sin reiniciar. Esa instalación aparentemente añade Apache, aunque deshabilitarlo aún me deja con la funcionalidad que necesito.

Supongo que no estoy tan acostumbrado a que las instalaciones añadan basura (sí, estoy seguro de que Apache es necesario para algo). Eso ocurre más comúnmente en, por ejemplo, Windows o Android :D.

Disculpas por las molestias. Aunque, por otro lado, este es un caso de uso real, siempre es bueno leerlos como desarrollador.