Port is free, mas o Apache falha com: “Endereço já em uso: make_sock: não foi possível vincular ao endereço”

2

O Apache (Linux Red Hat 4.1.x) falha ao iniciar com a mensagem: "Endereço já em uso: make_sock: não foi possível vincular ao endereço".

# /etc/init.d/httpd start
Starting httpd: (98)Address already in use: 
make_sock: could not bind to address 0.0.0.0:8000
no listening sockets available, shutting down
Unable to open logs
                                                       [FAILED]

Já tentou fazer:

killall -9 httpd

Parece que o Apache não está em execução. A porta 8000, se livre, nada impede que o Apache a ocupe. (nginx está em: 80 como proxy reverso)

 # netstat -tulpn| grep :80
 tcp  0   0 0.0.0.0:8001    0.0.0.0:*   LISTEN 17181/DarwinStreami
 tcp  0   0 0.0.0.0:80      0.0.0.0:*   LISTEN 7962/nginx.conf

Possivelmente alguém terá alguma ideia de como corrigir isso?

UPD1: as opções de configuração do Apache são:

ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5

<IfModule prefork.c>
StartServers       1
MinSpareServers   5
MaxSpareServers   20
ServerLimit     200
MaxClients  200
MaxRequestsPerChild 2000

User apache
Group apache

DocumentRoot "/var/www/html"

NameVirtualHost *:8000

UPD2: Pid não encontrado:

# ls /etc/httpd/run/*.pid
/etc/httpd/run/crond.pid          /etc/httpd/run/sshd.pid
/etc/httpd/run/dhclient-eth0.pid  /etc/httpd/run/streamingadminserver.pid
/etc/httpd/run/haldaemon.pid      /etc/httpd/run/syslogd.pid
/etc/httpd/run/messagebus.pid     /etc/httpd/run/syslog-ng.pid
/etc/httpd/run/nginx.pid          /etc/httpd/run/xfs.pid

UPD3: reinicialização do servidor não ajuda;)

UPD4: nc -l 8000 funciona OK, então o problema não é com uma porta 8000, mas com o próprio Apache.

UPD5: "# / usr / sbin / lsof -i: 8000" - não produz nada

    
por webdevbyjoss 02.12.2011 / 14:45

2 respostas

9

Você tem diretiva Listen para o mesmo soquete várias vezes. Use grep -r Listen /etc/httpd/conf.d/*.conf /etc/httpd/conf/httpd.conf para encontrar o culpado.

De documentação do apache :

Error condition
Multiple Listen directives for the same ip address and port will result in an Address already in use error message.

    
por 02.12.2011 / 15:52
0

Eu recebo isso algumas vezes quando o arquivo PID não foi removido durante a parada anterior do apache. Se o PID estiver lá, tente removê-lo antes de iniciar novamente.

Eu também recebo isso algumas vezes quando estou tentando iniciar o apache usando uma conta diferente da que o apache foi configurado para executar como.

    
por 02.12.2011 / 14:51