A instância do AWS EC2 informa que o apache2 não está em execução, mas o servidor ainda está ativo e o httpd está escutando na porta 80?

1

Então eu estou tentando usar certbot para obter um certificado LetsEncrypt para o meu site wordpress no EC2 (usando a imagem do mercado AWS por Bitnami, Ubuntu 14.04), mas ao executar o certbot --apache eu recebo o seguinte -

Error while running apache2ctl graceful.
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.

AH00112: Warning: DocumentRoot [/var/lib/letsencrypt/tls_sni_01_page/] does not exist
AH00112: Warning: DocumentRoot [/var/lib/letsencrypt/tls_sni_01_page/] does not exist
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

Portanto, não parece haver nada no arquivo de log. A execução do status apache2 do serviço fornece "o apache2 não está em execução".

Eu então fiz

sudo lsof -i :80 | grep LISTEN

que me deu -

httpd.bin 1584   root    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1589 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1590 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1773 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)

Eu obtive um resultado semelhante com

sudo netstat -tulpn | grep :80

que me deu

tcp6       0      0 :::80                   :::*                    LISTEN      1584/httpd.bin  

Fazendo-me pensar que o Apache está de fato em execução, mas talvez não a mesma versão ou algo assim? Alguém teve alguma experiência com um problema semelhante?

Obrigado!

    
por TheRedshift 25.07.2017 / 11:57

1 resposta

1

Qual é a sua diretiva Listen definida? Se estiver ouvindo endereços IPv4 e IPv6, no Linux, a única maneira de fazer isso é usar endereços mapeados. Então é por isso que está mostrando apenas como escuta em IPv6 em netstat . Documentos relevantes do Apache aqui - link

Agora, por que sua certbot run está gerando erros. O Apache está sendo iniciado / interrompido / reiniciado / recarregado via comandos service ou chamando um script como /etc/init.d/apache2 ou usando apache2ctl ? Está sendo feito dessa maneira consistentemente?

Escolha um dos métodos, pare o apache, verifique se ele está relatando como interrompido, reinicie o apache e veja se os relatórios estão sendo executados. Em seguida, verifique o status com os outros utilitários e veja se eles concordam.

Quando os vários métodos concordarem que o apache está de fato em execução, tente executar o certbot. Apesar de ser honesto, acho bastante trivial fazer a opção certonly (você precisará parar o apache para fazer isso - certbot / letsencrypt gera seus próprios ouvintes em 443/80 como parte de seu processo) e adicionar manualmente as alterações relevantes ao meu arquivo (s) de configuração do apache

    
por 10.05.2018 / 04:30