Impossible de démarrer Apache sur Ubuntu 12.10: aucun socket d'écoute disponible

9

Je ne peux pas démarrer apache2 installé à l'aide d'apt-get. J'obtiens la même erreur sur 2 installations distinctes d'Ubuntu 12.10, l'une sur mon PC de bureau, l'autre fonctionnant dans 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 dit:

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

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>

Merci de votre aide.

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
la source

Réponses:

9

il vous suffit de supprimer nginx (3 paquets) alors c'est tout .....

Votre problème principal est qu'aucun socket d'écoute n'est disponible. Vous êtes confronté à ce problème car une autre application / service a acquis le port 80 sur votre serveur Ubuntu.

Maintenant, vous devez tuer le processus qui a acquis le port 80. Vous pouvez le trouver facilement avec la commande suivante: -

sudo netstat -ltnp | grep ': 80'

Cela retournera quelque chose comme: -

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

pour le cas ci-dessus, le numéro de processus 1588 a acquis le port 80 , vous devez tuer ce processus 1588.

sudo kill -9 1588

Vous pouvez maintenant démarrer votre serveur apache en suivant la commande

sudo /etc/init.d/apache2 start

Vikas Dwivedi
la source
3
Merci! Cela m'a un peu dérouté, car il dit que "Le journal des erreurs Apache peut avoir plus d'informations", mais il n'y a rien là-dedans, également "Impossible d'ouvrir les journaux", mais il n'y a aucune information sur le fichier journal (apache? Les vhosts '? ). Il s'avère que nodejs utilise toujours le port 80 ..
andyk
Je reçois la même erreur, mais netstat ne répertorie rien en utilisant le port 80 ...
Cerin
@Cerin, vous devriez essayer sudo avant netstat.
Vikas Dwivedi
2

Pour résoudre l' erreur "apache2: impossible de déterminer de manière fiable le nom de domaine complet du serveur, en utilisant 127.0.1.1 pour ServerName" , veuillez indiquer ce qui suit dans votre fichier apache2.conf

ServerName HOSTNAME_OF_THE_SERVER

Enregistrez le fichier conf et redémarrez le serveur apache.

Veuillez publier la sortie de sudo netstat -ano | grep '443'

Assurez-vous également que si vous configurez apache pour écouter sur le port 443 / ssl, vous devez avoir configuré le certificat ssl sur le serveur Web apache.

Vidyadhar
la source
J'ai posté la sortie de sudo netstat -ano | grep '443'. La chose ServerName n'est pas un problème. Merci beaucoup.
michalstanko
1

As-tu vu:

Unable to open logs

Je pense que vous pouvez vérifier les autorisations sur / var / log / apache2!

martin-mystere
la source
Je suis un peu novice, mais j'ai rendu le /var/log/apache2répertoire accessible en écriture de manière récursive, puis j'ai essayé de sudo service apache2 startnouveau de l' exécuter et la sortie était toujours Unable to open logslà. Aucune suggestion? Merci.
michalstanko
Hmm. Est-ce que ça pourrait être quelque chose comme ça? cpanelblog.in/apache-error-unable-to-open-logs
martin-
1

Il semble que le service nginx soit derrière. Alors arrêtez le nginx "service nginx stop" et essayez maintenant de démarrer le service apache2, il devrait venir sans aucun problème. (arrêtez si d'autres services d'application sont en cours d'exécution)

J'ai eu le même problème aujourd'hui et il a été résolu.

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
la source
0

On dirait que le problème est qu'un autre processus a le port 443 ouvert. Vous devrez d'abord tuer ce processus.

linux - Comment supprimer une connexion de socket CLOSE_WAIT - Stack Overflow dit:

CLOSE_WAITsignifie que votre programme est toujours en cours d'exécution et n'a pas fermé le socket (et que le noyau attend qu'il le fasse). Ajoutez -pà netstatpour obtenir le pid, puis tuez-le avec plus de force (avec SIGKILLsi nécessaire). Cela devrait vous débarrasser de vos CLOSE_WAITprises. Vous pouvez également utiliser pspour trouver le pid.

Peter V. Mørch
la source