Não é possível iniciar o Apache - Endereço já em uso - o httpd está parado

3

Estou tentando configurar um servidor da Web do Amazon EC2 no "Virtual Private Cloud". Estou usando isso em vez de uma instância padrão do EC2 porque precisei atribuir vários IPs públicos e isso exige o uso de VPC.

De qualquer forma, depois de muitos saltos, finalmente consegui colocar a instância em funcionamento e conectada via SSH. Eu construí a instância a partir de uma imagem que tirei de um servidor padrão que está funcionando bem. No entanto, parece que não consigo iniciar o Apache:

# service httpd status
httpd is stopped
# service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1243/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1275/sendmail
tcp        0      0 0.0.0.0:9306                0.0.0.0:*                   LISTEN      1225/searchd
tcp        0      0 0.0.0.0:9312                0.0.0.0:*                   LISTEN      1225/searchd
tcp        0      0 :::80                       :::*                        LISTEN      1289/httpd
tcp        0      0 :::22                       :::*                        LISTEN      1243/sshd
tcp        0      0 :::443                      :::*                        LISTEN      1289/httpd
# ps aux | grep httpd
root      1287  0.0  0.2 108476  1780 ?        S    21:17   0:00 /bin/bash /etc/rc3.d/S85httpd start
root      1288  0.0  0.2  11348  1332 ?        S    21:17   0:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/httpd
root      1289  0.0  1.2 211888  7764 ?        S    21:17   0:00 /usr/sbin/httpd

Então estou um pouco confuso. O Apache não está em execução (como um serviço, e eu não o configurei para executar de outras maneiras), e não consigo iniciar o serviço, mas isso não está dizendo que o Apache IS está em execução? Alguma idéia de como resolver?

Adicionado em 04 / dez / 2012

O Apache foi instalado e configurado para iniciar automaticamente na inicialização com chkconfig --levels 235 httpd on , e é por isso que o processo httpd está sendo executado na inicialização. No entanto, quando você digita service httpd status , ele ainda está lendo como interrompido e indisponível por meio de um navegador da Web.

Para realmente reiniciar o Apache, parece que você precisa matar o processo normalmente ( kill -15 1289 works, em que 1289 era o ID do processo) e, em seguida, inserir service httpd start . Agora você pode iniciar, parar, reiniciar e recarregar o Apache sem problemas.

No entanto, eu queria poder usar o comando de serviço imediatamente, e outras informações me levaram a uma conclusão que ninguém poderia fornecer de forma realista: uma das chaves SSL requer uma frase secreta e não pode ser inserida na inicialização (claramente), então o processo não pôde ser iniciado corretamente. Eu removi a senha (que nós realmente não queremos, de qualquer maneira) e reiniciei. Agora, quando eu verifico com service httpd status , recebo httpd dead but subsys locked . Preciso excluir /var/lock/subsys/httpd para que o processo seja iniciado corretamente novamente.

Então, parecia um progresso, mas o processo ainda não é iniciado automaticamente.

Idéias, por favor?

    
por Engineer81 29.11.2012 / 22:29

2 respostas

3

tcp 0 0 :::80 :::* LISTEN 1289/httpd

O Httpd está em execução e tem um id de processo de 1289. Se por alguma razão incomum não for o Apache e alguma outra coisa que também é denominada httpd, você poderá encontrar mais informações com um comando como lsof -n -p 1289 .

Você poderia provavelmente apenas kill desse processo.

    
por 29.11.2012 / 22:39
1

Eu diria que o apache está rodando, e você pode vê-lo no display .... netstat indica que o processo 1289 está escutando na porta 80 e de fato o ps está mostrando isso também. httpd é o apache!

Assim, você provavelmente pode simplesmente matar -9 1289 (como root) e depois reiniciar.

    
por 29.11.2012 / 22:42