O Apache não pode ser iniciado devido a uma ligação make_sock para o erro de endereço na porta 80

3

Tenho notado uma coisa nova acontecendo com o meu servidor que não consigo descobrir o que está acontecendo. Espero que alguém tenha experiência com esse problema e possa me ajudar a encontrar uma solução para que ele pare.

Eu fiz uma reinicialização no meu servidor Ubuntu hoje que estou rodando em slicehost.com. Tudo corre muito bem até eu começar o apache. Eu recebo o seguinte erro.

* Starting web server apache2 (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 ...fail!

Um pouco mais de pesquisa usando netstat -ltnp | grep ':80' mostrará o seguinte:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3948/apache2

Eu posso então kill 3948 e o apache ser iniciado normalmente. O PID 3948 continua mudando para um número diferente.

Isso é novo e a única coisa que fiz desde que tive uma inicialização bem-sucedida, sem que isso acontecesse, era desinstalar uma instalação manual do phpmyadmin e reinstalá-la usando os comandos aptitude install. O phpmyadmin agora funciona bem no servidor, mas eu não entendo o que este erro significa ou como posso resolvê-lo.

Qualquer pessoa que possa oferecer algum insight seria muito apreciada!

ATUALIZAÇÃO: Depois de executar ls -la /etc/init.d/ , recebo a seguinte saída. @prix não parece que o httpd esteja nesta lista.

total 308
drwxr-xr-x  2 root root  4096 2010-06-08 16:38 .
drwxr-xr-x 73 root root  4096 2010-08-18 14:56 ..
-rwxr-xr-x  1 root root  6464 2008-09-19 08:42 apache2
-rwxr-xr-x  1 root root  2231 2008-10-14 08:02 bootlogd
-rwxr-xr-x  1 root root  1916 2008-10-14 08:02 bootmisc.sh
-rwxr-xr-x  1 root root  3508 2008-10-14 08:02 checkfs.sh
-rwxr-xr-x  1 root root 10507 2008-10-14 08:02 checkroot.sh
-rwxr-xr-x  1 root root  7948 2008-09-25 04:12 console-screen.kbd.sh
-rwxr-xr-x  1 root root  1670 2008-06-11 16:02 console-setup
-rwxr-xr-x  1 root root  2653 2008-09-09 14:52 cron
-rwxr-xr-x  1 root root  7195 2008-09-29 05:15 glibc.sh
-rwxr-xr-x  1 root root  1329 2008-10-14 08:02 halt
-rwxr-xr-x  1 root root  1287 2008-10-14 08:02 hostname.sh
-rwxr-xr-x  1 root root  4528 2008-09-25 08:07 hwclockfirst.sh
-rwxr-xr-x  1 root root  4521 2008-09-25 08:07 hwclock.sh
-rwxr-xr-x  1 root root  1404 2008-06-11 16:02 keyboard-setup
-rwxr-xr-x  1 root root  1484 2008-10-14 08:02 killprocs
-rwxr-xr-x  1 root root  1818 2008-08-29 19:41 klogd
-rwxr-xr-x  1 root root   748 2008-06-21 17:30 loopback
-rwxr-xr-x  1 root root  1399 2008-10-14 10:51 module-init-tools
-rwxr-xr-x  1 root root   620 2008-10-14 08:02 mountall-bootclean.sh
-rwxr-xr-x  1 root root  1956 2008-10-14 08:02 mountall.sh
-rwxr-xr-x  1 root root  1351 2008-10-14 08:02 mountdevsubfs.sh
-rwxr-xr-x  1 root root  2296 2008-10-14 08:02 mountkernfs.sh
-rwxr-xr-x  1 root root   618 2008-10-14 08:02 mountnfs-bootclean.sh
-rwxr-xr-x  1 root root  2330 2008-10-14 08:02 mountnfs.sh
-rwxr-xr-x  1 root root  1321 2008-10-14 08:02 mountoverflowtmp
-rwxr-xr-x  1 root root  3668 2008-10-14 08:02 mtab.sh
-rwxr-xr-x  1 root root  5755 2008-09-19 07:02 mysql
-rwxr-xr-x  1 root root  2515 2008-09-19 07:02 mysql-ndb
-rwxr-xr-x  1 root root  1905 2008-09-19 07:02 mysql-ndb-mgm
-rwxr-xr-x  1 root root  2663 2008-06-23 09:21 networking
-rwxr-xr-x  1 root root  1271 2008-10-27 06:17 procps
-rwxr-xr-x  1 root root  9600 2008-10-14 08:02 rc
-rwxr-xr-x  1 root root   788 2008-10-14 08:02 rc.local
-rwxr-xr-x  1 root root   117 2008-10-14 08:02 rcS
-rw-r--r--  1 root root  1510 2008-10-14 08:02 README
-rwxr-xr-x  1 root root   639 2008-10-14 08:02 reboot
-rwxr-xr-x  1 root root   941 2008-10-14 08:02 rmnologin
-rwxr-xr-x  1 root root  5200 2008-07-28 08:42 rsync
-rwxr-xr-x  1 root root 33378 2008-05-20 02:27 sendmail
-rwxr-xr-x  1 root root  2283 2008-10-14 08:02 sendsigs
-rwxr-xr-x  1 root root   590 2008-10-14 08:02 single
-rw-r--r--  1 root root  4167 2008-10-14 08:02 skeleton
-rwxr-xr-x  1 root root  3710 2008-10-13 13:52 ssh
-rwxr-xr-x  1 root root   525 2008-10-14 08:02 stop-bootlogd
-rwxr-xr-x  1 root root  1096 2008-10-14 08:02 stop-bootlogd-single
-rwxr-xr-x  1 root root  3483 2008-08-29 19:41 sysklogd
-rwxr-xr-x  1 root root  2488 2008-10-24 05:38 udev
-rwxr-xr-x  1 root root   706 2008-10-24 05:38 udev-finish
-rwxr-xr-x  1 root root  3627 2008-10-14 08:02 umountfs
-rwxr-xr-x  1 root root  2140 2008-10-14 08:02 umountnfs.sh
-rwxr-xr-x  1 root root  1456 2008-10-14 08:02 umountroot
-rwxr-xr-x  1 root root  1815 2008-10-14 08:02 urandom
-rwxrwxr-x  1 root root  1314 2010-03-04 19:22 webmin
-rwxr-xr-x  1 root root  1777 2008-10-23 08:40 x11-common
-rwxr-xr-x  1 root root  2154 2008-07-28 07:27 xinetd
    
por Chad 18.08.2010 / 07:09

2 respostas

2

Bem, depois de criar um servidor de desenvolvimento como uma cópia exata para experimentar coisas novas, acho que descobri. Vou colocar meu processo abaixo e espero que ajude os outros no futuro.

A primeira coisa que fiz foi alterar minhas portas para um número diferente para que eu pudesse ver o que ainda estava sendo executado na porta: 80.

sudo nano /etc/apache2/ports.conf

Eu tinha oringally:

Listen 80
Listen 443

então eu mudei para:

Listen 88
Listen 443

Isso me permite ver o que estava acontecendo agora em minhas portas usando sudo netstat -lpAinet

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:448                   *:*                     LISTEN      4183/apache2    
tcp        0      0 localhost:mysql         *:*                     LISTEN      3741/mysqld     
tcp        0      0 localhost:submission    *:*                     LISTEN      3973/sendmail: MTA:
tcp        0      0 *:www                   *:*                     LISTEN      4025/apache2    
tcp        0      0 *:ssh                   *:*                     LISTEN      3651/sshd       
tcp        0      0 *:kerberos              *:*                     LISTEN      4183/apache2    
tcp        0      0 localhost:smtp          *:*                     LISTEN      3973/sendmail: MTA:
tcp        0      0 *:https                 *:*                     LISTEN      4025/apache2

Se você perceber que o PID 4025 está sendo executado em *: www e em *: https. Esta é a instância do apache que está bagunçando tudo. Então, fazer um kill -9 {PID} irá matar esse processo para sempre. (honestamente não sei o que o kill -9 faz, mas funcionou para mim. Alguém pode querer corrigir isso se não estiver totalmente correto.

Minha próxima saída foi ótima. Uma instância do apache em execução agora. sudo netstat -lpAinet

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:448                   *:*                     LISTEN      4183/apache2    
tcp        0      0 localhost:mysql         *:*                     LISTEN      3741/mysqld     
tcp        0      0 localhost:submission    *:*                     LISTEN      3973/sendmail: MTA:
tcp        0      0 *:webmin                *:*                     LISTEN      4233/perl       
tcp        0      0 *:ssh                   *:*                     LISTEN      3651/sshd       
tcp        0      0 *:kerberos              *:*                     LISTEN      4183/apache2    
tcp        0      0 localhost:smtp          *:*                     LISTEN      3973/sendmail: MTA:
udp        0      0 *:10000                 *:*                                 4233/perl

Agora que encontrei o problema, alterei meu ports.conf sudo nano /etc/apache2/ports.conf de volta para as configurações originais.

Eu apache simples parar sudo /etc/init.d/apache2 stop e iniciar sudo /etc/init.d/apache2 start e as coisas estão funcionando muito bem. O teste real para mim foi reiniciar o servidor e ver se ele funcionava como foi suppossed. Trabalhou como um encanto.

De um post que eu li sobre isso com RedHat:

O problema foi porque:

this problem is comes only if u started the weberver and than made some modification or tried to load the jsp or asp support than u will find http locked when u tried to restart it.

Espero que isso ajude a tonelada de outras pessoas que eu pesquisei tendo o mesmo problema, mas sem soluções reais. De qualquer forma, funcionou para o meu caso. Btw - Isso pode ser porque estou usando um Cloud Server. Não tenho certeza.

    
por 18.08.2010 / 22:49
0

Se você fizer alterações na configuração e, em seguida, reiniciar o apache usando

service httpd restart

Então você terá esse problema e terá que eliminar todos os processos do httpd e iniciar o apache novamente.

killall -9 httpd
service httpd start

Para impedir que isso ocorra, quando você fizer alterações na configuração, não use

service httpd restart

use

service httpd reload

Eu testei isso e isso resolveu o problema para mim nos dois servidores que foram afetados.

    
por 19.08.2010 / 18:02

Tags