Fehlerbehebung: Apache2 startet nicht – „Address Already in Use“

Melden

Hier ist ein ausführliches Tutorial, wie du den Fehler „Address Already in Use“ beim Starten des Apache2-Webservers unter Linux (z. B. Ubuntu) beheben kannst.

Wenn der Apache2-Server nicht startet und die Fehlermeldung (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 erscheint, bedeutet dies, dass bereits ein anderes Programm den Port 80 (oder 443 für HTTPS) belegt.

Hier sind die Schritte, um das Problem zu identifizieren und zu lösen.


Schritt 1: Den Fehler bestätigen

Zuerst solltest du prüfen, ob der Port-Konflikt tatsächlich die Ursache ist. Gib dazu folgenden Befehl ein:

sudo systemctl status apache2

Wenn du in der Ausgabe Zeilen wie Protocol not available oder make_sock: could not bind to address siehst, blockiert ein anderer Prozess den Port.


Schritt 2: Den blockierenden Prozess finden

Um herauszufinden, welches Programm den Port 80 verwendet, nutzt du das Werkzeug netstat, ss oder lsof.

Option A (mit netstat):

sudo netstat -tulpn | grep :80

Option B (mit ss):

sudo ss -tulpn | grep :80

Was die Ausgabe bedeutet: Du erhältst eine Zeile, die etwa so aussieht: tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx

In diesem Beispiel ist 1234 die Prozess-ID (PID) und nginx der Name des Programms, das den Port belegt.


Schritt 3: Den blockierenden Prozess beenden

Je nachdem, welches Programm den Port belegt, hast du zwei Möglichkeiten:

Möglichkeit 1: Den Dienst ordnungsgemäß stoppen

Oft ist es ein anderer Webserver wie Nginx oder eine alte Instanz von Apache.

  • Wenn es Nginx ist: sudo systemctl stop nginx
  • Wenn es eine hängende Apache-Instanz ist: sudo systemctl stop apache2

Möglichkeit 2: Den Prozess hart beenden (Kill)

Falls es sich um einen Prozess handelt, der nicht auf systemctl reagiert, nutze die PID aus Schritt 2:

sudo kill -9 <PID>

(Ersetze <PID> durch die tatsächliche Nummer, z. B. 1234)


Schritt 4: Apache2 neu starten

Nachdem der Port frei ist, kannst du Apache2 wieder starten:

sudo systemctl start apache2

Überprüfe nun den Status:

sudo systemctl status apache2

Die Anzeige sollte nun „active (running)“ in grüner Schrift zeigen.


Schritt 5: Dauerhafte Lösung (Optional)

Falls du zwei Webserver gleichzeitig betreiben möchtest (z. B. Nginx und Apache), musst du den Port eines Servers ändern.

  1. Öffne die Apache-Konfigurationsdatei für Ports:
    sudo nano /etc/apache2/ports.conf
  2. Ändere die Zeile Listen 80 in einen anderen Port, zum Beispiel Listen 8080.
  3. Passe gegebenenfalls deine VirtualHost-Datei an:
    sudo nano /etc/apache2/sites-enabled/000-default.conf

    (Ändere <VirtualHost *:80> zu <VirtualHost *:8080>)

  4. Speichere die Dateien und starte Apache neu: sudo systemctl restart apache2.

Zusammenfassung der wichtigsten Befehle

  • sudo systemctl restart apache2 – Startet Apache neu.
  • sudo lsof -i :80 – Zeigt an, wer Port 80 nutzt.
  • sudo fuser -k 80/tcp – Beendet sofort alle Prozesse, die Port 80 nutzen (schnelle Lösung).
0