Impossibile avviare Apache su Ubuntu 12.10: nessuna presa di ascolto disponibile


9

Non riesco ad avviare apache2 installato usando apt-get. Ricevo lo stesso errore su 2 installazioni separate di Ubuntu 12.10, una sul mio PC desktop, l'altra in esecuzione su 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 dice:

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 dice:

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>

Grazie per l'aiuto.

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)

Risposte:


9

devi solo rimuovere nginx (3 pacchetti), allora è tutto .....

Il problema principale è che non sono disponibili socket di ascolto . Stai affrontando questo problema perché un'altra applicazione / servizio ha acquisito la porta 80 sul tuo Ubuntu Server.

Ora devi terminare il processo che ha acquisito la porta 80. Puoi trovarlo facilmente con il seguente comando: -

sudo netstat -ltnp | grep ': 80'

Questo restituirà qualcosa di simile: -

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

per il caso precedente il numero di processo 1588 ha acquisito la porta 80 , è necessario interrompere tale processo 1588.

sudo kill -9 1588

Ora puoi avviare il tuo server apache seguendo il comando

sudo /etc/init.d/apache2 start


3
Grazie! Questo mi ha sconcertato un po ', perché dice che "Il log degli errori di Apache potrebbe avere più informazioni", ma non c'è nulla lì dentro, anche "Impossibile aprire i log", ma non ci sono informazioni su quale file di log (apache's? The vhosts'? ). Si scopre che nodejs sta ancora usando la porta 80 ..
andyk,

Ottengo lo stesso errore, ma netstat non elenca nulla utilizzando la porta 80 ...
Cerin,

@Cerin dovresti provare sudo prima di netstat.
Vikas Dwivedi,

2

Per risolvere "apache2: impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando l'errore 127.0.1.1 per ServerName" , si prega di specificare quanto segue nel file apache2.conf

ServerName HOSTNAME_OF_THE_SERVER

Salva il file conf e riavvia il server apache.

Si prega di inviare l'output di sudo netstat -ano | grep '443'

Assicurati anche che se stai configurando apache per l'ascolto sulla porta 443 / ssl dovresti aver configurato il certificato ssl sul server web apache.


Ho pubblicato l'output di sudo netstat -ano | grep '443'. La cosa ServerName non è un problema. Grazie mille.
michalstanko,

1

Hai visto:

Unable to open logs

Penso che potresti controllare i permessi su / var / log / apache2!


Sono un po 'alle prime armi, tuttavia ho reso la /var/log/apache2directory ricorsivamente scrivibile in tutto il mondo, quindi ho provato a correre di sudo service apache2 startnuovo e l'output era ancora Unable to open logslì. Eventuali suggerimenti? Grazie.
michalstanko,

Hmm. Quindi potrebbe essere qualcosa del genere? cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere

1

Sembra che ci potrebbe essere un servizio nginx in esecuzione dietro. Quindi interrompi il servizio nginx "stop nginx" e ora prova ad avviare il servizio apache2, dovrebbe arrivare senza problemi. (interrompi se sono in esecuzione altri servizi app)

Ho avuto lo stesso problema oggi e si è risolto.

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:~#

0

Sembra che il problema sia che un altro processo ha la porta 443 aperta. Devi prima uccidere quel processo.

linux - Come rimuovo una connessione socket CLOSE_WAIT - StackTranslate.it dice:

CLOSE_WAITsignifica che il tuo programma è ancora in esecuzione e non ha chiuso il socket (e il kernel sta aspettando che lo faccia). Aggiungi -pa netstatper ottenere il pid, quindi uccidilo più energicamente (con SIGKILLse necessario). Questo dovrebbe sbarazzarsi delle CLOSE_WAITprese. Puoi anche usare psper trovare il pid.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.