Apache 2 konnte nicht gebunden werden, Adresse wird bereits verwendet

Apache 2 konnte nicht gebunden werden, Adresse wird bereits verwendet

Ich habe Apache 2 auf Ubuntu 12.10 installiert. Wenn ich versuche, den Dienst mit zu starten sudo /etc/init.d/apache2 start, erhalte ich die folgende Meldung.

*Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.                                 [fail]

Antwort1

Es ist gut möglich, dass an diesem Port bereits etwas läuft (oder „an diesen gebunden ist“). Versuchen Sie diesen Befehl, um die betreffenden Prozesse anzuzeigen:

sudo lsof -i :80

Hier werden Prozesse aufgelistet, die auf Port 80 lauschen. Sobald Sie den Übeltäter gefunden haben, wissen Sie, welcher Prozess ausgeführt werden muss kill( kill -9auch als Superuser).

Bedenken Sie, dass die Apache-Instanz, vorausgesetzt, Sie haben sie früher gestartet, möglicherweise „veraltet“ oder zu einem Zombie geworden ist. Im letzteren Fall kann in einigen Fällen sogar ein Neustart erforderlich sein.

Andernfalls folgen Sie der Antwort von dedunumax.

Antwort2

Versuchensudo service apache2 start

dann tippe

sudo service apache2 status

Der zweite Befehl zeigt an, ob es ausgeführt wird oder nicht.

Antwort3

Bei folgender Konfiguration habe ich folgende Fehlermeldung bekommen:

# cat /etc/hosts
127.0.0.1   localhost
127.0.0.1   foo
...

# cat /etc/apache2/sites-enabled/foo
<VirtualHost foo:80>
...

# cat /etc/apache2/ports.conf 
...
NameVirtualHost *:80
Listen localhost:80
...

ports.confDas Durchführen der folgenden Änderung hat das Problem behoben:

NameVirtualHost *:80
Listen 127.0.0.1:80

Antwort4

Möglicherweise läuft andere Software wie Nginx und verwendet Port 80.

Apache2 stürzte auf meinem VPS mit derselben Fehlermeldung ab und ich stellte fest, dass Nginx auf dem Server vorhanden war und etwas (ein Cron-Job?) es einige Tage später gestartet hatte. Dies führt zu einem Konflikt, da es Port :80 verwendet und irgendwie Vorrang vor Apache2 hat.

Um zu überprüfen, ob Port :80 bereits verwendet wird, geben Sie Folgendes ein:

netstat -tulpn

Ich habe es gelöst, indem ich Nginx deinstalliert (mit „remove --purge“), den Nginx-Prozess beendet und Apache2 neu gestartet habe.

verwandte Informationen