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.

Como este tópico foi útil, vou apenas adicioná-lo, mesmo tendo 3 anos. Enfrentei hoje o problema de porta em uso e estou um pouco confuso com o que aconteceu. Apenas mostrando a ordem dos eventos, caso alguém mais encontre isso.

Contexto: Executando Ubuntu 16.04.3 LTS (com medo demais de atualizar para 18.04) e Discourse 2.3.x (não tenho certeza de qual versão, o motivo disso será explicado depois :)).

Fiz uma alteração (irrelevante) no app.yml e recriei o app.

Também notei que o Ubuntu queria reiniciar (não verifiquei o motivo), então reiniciei o Ubuntu também.

E acabei com o problema de erro de porta.

Descobri que o Apache2 estava rodando de repente, então o desabilitei:
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).

E finalmente o fórum voltou, já que a porta agora estava livre.

O que não consigo entender é por que isso aconteceu? De onde veio o Apache2?

Deveria ter testado o fórum imediatamente após a reinicialização, droga. Agora não sei se a atualização do Discourse ou a reinicialização do Ubuntu foi responsável por isso (provavelmente posso encontrar isso em algum log, mas não sou mais muito bom com Linux). Até tentei procurar no fórum se o Discourse 2.5 instala o Apache2 atualmente.

A boa notícia é que atualizar o Discourse estava atrasado há muito tempo. Estou apenas muito relutante em atualizar nos dias de hoje, já que tive problemas como esse a cada duas vezes nos últimos 5 anos. Ainda amo o Discourse, porém…

Pelo que você descreveu, a melhor maneira de saber se outra atualização vai causar um problema é atualizar três dias seguidos — deve ser realmente simples o suficiente para que isso seja viável!

Em geral, espere que, se faz mais de um ano desde sua última atualização do Discourse, você precise executar ./launcher rebuild app. Claro, recomendo visitar /admin/upgrade com mais frequência :slight_smile:

Se o seu app.yml chamava algo diferente, você precisa

  ./launcher stop irrelevant

Ou renomeá-lo e reconstruí-lo.

O Discourse não instala nada fora do contêiner, exceto o Docker, que é um pré-requisito de instalação.

É provável que o Apache2 tenha sido instalado após a última reinicialização e não pôde usar a porta até que você reiniciasse a máquina. Use o grep no histórico do bash para verificar quais pacotes foram instalados manualmente.

Obrigado pelas ideias, pessoal.

Eu usei o rebuild app. E se o Discourse não instala nada extra (estava pensando que o nginx e o Apache2 viriam por padrão por causa de algo novo)… hmm. Certamente não adicionei o Apache2 eu mesmo.

Ah. Depois de ter esse DigitalOcean Ubuntu apenas para o Discourse por anos e anos, eu realmente instalei o Subversion em janeiro, aparentemente sem reiniciar. Essa instalação aparentemente adiciona o Apache, embora desativá-lo ainda me deixe com a funcionalidade que preciso.

Acho que não estou tão acostumado com instalações adicionando lixo (sim, tenho certeza de que o Apache é necessário para alguma coisa). Isso acontece mais comumente no Windows ou no Android :D.

Desculpe pelo transtorno. Mas, por outro lado, este é um cenário de caso de uso real, sempre bom ler isso como desenvolvedor.