Não foi possível iniciar o Apache no Ubuntu 12.10: nenhum soquete de escuta disponível

9

Não consigo iniciar o apache2 instalado usando o apt-get. Estou recebendo o mesmo erro em 2 instalações separadas do Ubuntu 12.10, uma no meu PC de mesa e a outra no VirtualBox:

michal@michaltest:~$ sudo service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
           [fail]

lsof diz:

michal@michaltest:/var/log/apache2$ sudo lsof -i :80
COMMAND     PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge  2074 michal   11u  IPv4  23978      0t0  TCP michaltest.local:47578->mulberry.canonical.com:http (CLOSE_WAIT)
firefox   25194 michal   71u  IPv4  42477      0t0  TCP michaltest.local:59793->69.59.197.29:http (ESTABLISHED)
firefox   25194 michal   76u  IPv4  41834      0t0  TCP michaltest.local:59698->69.59.197.29:http (ESTABLISHED)
gvfsd-htt 25320 michal   12u  IPv4  42568      0t0  TCP michaltest.local:56203->lb260.amst.cotendo.net:http (CLOSE_WAIT)

netstat diz:

michal@michaltest:/var/log/apache2$ sudo netstat -lnp | grep '80'
unix  2      [ ACC ]     STREAM     LISTENING     8030     876/acpid           /var/run/acpid.socket

/var/log/apache2/error.log:

[Thu Nov 08 11:13:30 2012] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Thu Nov 08 11:17:32 2012] [notice] caught SIGTERM, shutting down

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Obrigado pela ajuda.

EDIT # 1:

michal@michaltest:~$ sudo netstat -ano | grep '443'
tcp       54      0 10.0.2.15:58504         91.189.92.70:443        CLOSE_WAIT  off (0.00/0/0)
michalstanko
fonte

Respostas:

9

você só precisa remover o nginx (3 pacotes) e é isso .....

Seu problema principal é que não há soquetes de escuta disponíveis . Você está enfrentando esse problema porque outro aplicativo / serviço adquiriu a porta 80 no seu Ubuntu Server.

Agora você precisa matar o processo que adquiriu a porta 80. Você pode encontrar isso facilmente com o seguinte comando: -

sudo netstat -ltnp | grep ': 80'

Isso retornará algo como: -

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 1588 / aolserver4-nsd

para o caso acima, o processo número 1588 adquiriu a porta 80 , é necessário eliminar esse processo 1588.

sudo kill -9 1588

Agora você pode iniciar seu servidor apache seguindo o comando

sudo /etc/init.d/apache2 start

Vikas Dwivedi
fonte
3
Obrigado! Isso me surpreendeu um pouco, porque diz que "O log de erros do Apache pode ter mais informações", mas não há nada lá, também "Não é possível abrir logs", mas não há informações sobre qual arquivo de log (do apache? Os fantasmas? ) Acontece que o nodejs ainda está usando a porta 80 ..
andyk 05/02
Eu recebo o mesmo erro, mas o netstat não lista nada usando a porta 80 ...
Cerin
@ Cerin, você deve tentar o sudo antes do netstat.
Vikas Dwivedi
2

Para resolver o erro "apache2: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 127.0.1.1 para ServerName" , especifique o seguinte no arquivo apache2.conf

ServerName HOSTNAME_OF_THE_SERVER

Salve o arquivo conf e reinicie o servidor apache.

Por favor, postar a saída de sudo netstat -ano | grep '443'

Certifique-se também de que, se você estiver configurando o apache para escutar na porta 443 / ssl, deverá ter configurado o certificado ssl no servidor da web apache.

Vidyadhar
fonte
Postei a saída de sudo netstat -ano | grep '443'. A coisa ServerName não é um problema. Muito obrigado.
michalstanko
1

Você viu:

Unable to open logs

Eu acho que você pode verificar as permissões em / var / log / apache2!

martin-mystere
fonte
Sou um pouco novato, no entanto, tornei o /var/log/apache2diretório gravável mundialmente, depois tentei executar sudo service apache2 startnovamente e a saída ainda estava Unable to open logslá. Alguma sugestão? Obrigado.
michalstanko
Hmm. Então poderia ser algo assim? cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere
1

Parece que pode haver um serviço nginx em execução. Portanto, pare o nginx "service nginx stop" e agora tente iniciar o serviço apache2, ele deve vir sem problemas. (pare se houver outros serviços de aplicativos em execução)

Eu tive o mesmo problema hoje e foi resolvido.

root@ip-172-31-16-xxx:~# **service nginx stop**
root@ip-172-31-16-xxx:~# **service nginx status**
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2017-12-26 08:48:21 UTC; 1min 12s ago
  Process: 5897 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1220 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1158 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1229 (code=exited, status=0/SUCCESS)

Dec 26 06:56:32 ip-172-31-16-xxxsystemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 26 06:56:32 ip-172-31-16-138 systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopping A high performance web server and a reverse proxy server...
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopped A high performance web server and a reverse proxy server.

root@ip-172-31-16-xxx:~# **service apache2 start**
root@ip-172-31-16-xxx:~# **service apache2 status**
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   **Active: active (running) since Tue 2017-12-26 08:49:51 UTC; 14s ago**
     Docs: man:systemd-sysv-generator(8)
  Process: 5845 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 5937 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 6.5M
      CPU: 46ms
   CGroup: /system.slice/apache2.service
           ├─5954 /usr/sbin/apache2 -k start
           ├─5957 /usr/sbin/apache2 -k start
           └─5958 /usr/sbin/apache2 -k start

Dec 26 08:49:50 ip-172-31-16-138 systemd[1]: Starting LSB: Apache2 web server...
Dec 26 08:49:50 ip-172-31-16-138 apache2[5937]:  * Starting Apache httpd web server apache2
Dec 26 08:49:51 ip-172-31-16-138 apache2[5937]:  *
Dec 26 08:49:51 ip-172-31-16-138 systemd[1]: Started LSB: Apache2 web server.
root@ip-172-31-16-138:~#
Nagaraj Jalawadi
fonte
0

Parece que o problema é que outro processo tem a porta 443 aberta. Você precisará matar esse processo primeiro.

linux - Como faço para remover uma conexão de soquete CLOSE_WAIT - Stack Overflow diz:

CLOSE_WAITsignifica que seu programa ainda está em execução e não fechou o soquete (e o kernel está esperando por isso). Adicione -ppara netstatobter o pid e depois mate-o com mais força (com SIGKILLse necessário). Isso deve se livrar de suas CLOSE_WAITtomadas. Você também pode usar pspara encontrar o pid.

Peter V. Mørch
fonte