
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 -9
auch 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.conf
Das 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.