Apache wird nicht über die XAMPP-Systemsteuerung ausgeführt (Fehler: Apache wurde unerwartet heruntergefahren. Dies kann an einem blockierten Port liegen.)

77

Ich habe XAMPP (xampp-win32-1.8.2-0-VC9-installer.exe) unter Windows 7 erfolgreich installiert. Leider wurde beim Ausführen von Apache über die XAMPP-Systemsteuerung der folgende Fehler festgestellt:

5:38:38 PM  [Apache]    Error: Apache shutdown unexpectedly.
5:38:38 PM  [Apache]    This may be due to a blocked port, missing dependencies, 
5:38:38 PM  [Apache]    improper privileges, a crash, or a shutdown by another method.
5:38:38 PM  [Apache]    Press the Logs button to view error logs and check
5:38:38 PM  [Apache]    the Windows Event Viewer for more clues
5:38:38 PM  [Apache]    If you need more help, copy and post this
5:38:38 PM  [Apache]    entire log window on the forums

Fehler beim Ausführen von Apache im XAMPP Controm Panel

Ripon Al Wasim
quelle
1
Höchstwahrscheinlich wird der Standardport 80 von einer anderen Anwendung belegt
Ripon Al Wasim,
1
Beachten Sie, dass das Control Panel diese Details nicht unbedingt angibt. Möglicherweise wird nur "Apache hat [Port 80] gestartet" angezeigt und der Server wird nicht gestartet. Die Auflösung ist jedoch dieselbe.
PeerBr
Der größte Teil des Falles ist wegen Skype. Scrollen
Sie nach

Antworten:

92

Es gibt viele mögliche Antworten auf dieses Problem. Am häufigsten und wahrscheinlichsten ist, dass Sie ein anderes Programm ausführen, das Port 80 oder 443 blockiert. Wenn Sie Skype installiert haben, haben Sie Ihr Problem gefunden! Ändern Sie die Porteinstellungen von Apache auf 81 und Apache funktioniert. Es gibt ein gutes Tutorial dazu. Um dies zu überprüfen, können Sie Ihre Befehlszeile öffnen, indem Sie auf das Startmenü klicken, 'cmd' eingeben und den Befehl eingeben

    netstat -nab

Dadurch wird eine Liste von Programmen zurückgegeben, die diesem Muster vage ähneln

    [someprogram.exe]
    UDP     [fe80::numbers:numbers:numbers:numbers%numbers]:portnumber

Sie müssen eine Zeile (oder Zeilen) finden, die auf: 80 endet, und diese beenden, um Apache zu starten. Wenn keine Zeile mit der Endung: 80 endet, können Sie weitere Aktionen ausführen.

Navigieren Sie zunächst zum Verzeichnis von xampp (Standard ist c: \ xampp) und doppelklicken Sie auf apache_start.bat. Dies öffnet eine Befehlszeile und gibt detailliertere Fehler darüber zurück, warum Apache nicht ausgeführt werden kann. Suchen Sie meistens nach Syntaxfehlern, die Sie möglicherweise durch Bearbeiten Ihrer Dateien httpd.conf oder httpd-ssl.conf erstellt haben. Dies ist sehr einfach, wenn Sie es bearbeitet haben und ein neuer Benutzer sind.

Wenn dies immer noch fehlschlägt, besteht Ihre letzte Hoffnung darin, das Apache-Fehlerprotokoll zu überprüfen, indem Sie in der xampp-Systemsteuerung auf die Registerkarte Protokolle in der Apache-Zeile klicken und auf Fehlerprotokoll klicken.

Wenn nichts davon funktioniert, geben Sie nicht auf! Du schaffst das!

Bearbeiten: Wenn Sie den Port von Apache ändern, müssen Sie auch in httpd.conf (in xampp / apache / conf) gehen und in der Nähe von Zeile 184 ersetzen

ServerName localhost:80

mit

ServerName localhost:81

Es ist auch möglich, Port 81 in der URL Ihres lokalen Hosts anzugeben, d. H.

localhost: 81 / my_project.php

TheHiggsBroson
quelle
3
Ich habe den Port auf 81 anstatt auf 80 geändert. Apache wird nicht gestartet, wenn ich bei Skype angemeldet bin. Der Fehler ist 443 belegt. Ich mache es also gut, indem ich Apache ausführe, bevor ich mich bei Skype anmelde. Die Reihenfolge ist also: Führen Sie zuerst Apache aus und melden Sie sich dann bei Skype an
Ripon Al Wasim
1
Wenn ich Apache starte, läuft es wie folgt: PID (s): 5316 & 5340 Port (s): 81, 443
Ripon Al Wasim
3
Ich habe die Zeile Listen 443 als Listen 444 in der Datei httpd-ssl.conf geändert. Apache wird also auch während der Anmeldung bei Skype ausgeführt. Also läuft Apache auf Port 81, 444. Schön ... Nochmals vielen Dank, Timmay.
Ripon Al Wasim
2
Versuchen Sie, als Administrator auszuführen, während die xampp-Steuerung für mich funktioniert hat. Ich habe kein Skype oder eine andere Anwendung über Port 80.
Mightian
2
apache_start.batlöste mein Problem. Du
hättest
37

1. Gehen Sie hinein xampp/apache/conf/httpd.confund öffnen Sie es.
In der httpd.confDatei unter line 176Ersetzen

ServerName localhost:80
mit
ServerName localhost:81
Es wird funktionieren.

Oder 2. Auch wenn das obige Verfahren nicht funktioniert. Dann in der gleichen Datei ( httpd.conf) in Zeile 45 ersetzen

   #Listen 0.0.0.0:80
   #Listen [::]:80
   Listen 80 

mit

  #Listen 0.0.0.0:81
  #Listen [::]:81
  Listen 81
Muhammad Ashikuzzaman
quelle
Außerdem habe ich Apache und MySQL überprüft, was ich nicht hätte tun sollen, da Windows sie bereits hatte. Ich habe sie deaktiviert und alles ist gut. Vielen Dank.
Timmyt123
Funktioniert, saugt aber auch. Sie möchten nicht zulocalhost:81
Richard
19

Die XAMPP-Systemsteuerung unter Windows spiegelt nicht immer die tatsächlichen Vorgänge wider, es sei denn, Sie starten sie mit "Als Administrator ausführen".

101
quelle
Dies war auch mein Problem unter Windows 10
Rémi
Wenn ich es als Administrator ausführte, erhielt ich die Informationen, die ich zur Lösung meines Problems benötigte. Vielen Dank.
Slicktrick
Ich wusste, dass die Ports frei waren und war mir nicht sicher, was los war. Vielen Dank für Ihre Lösung! Ich verwende Windows Server 2019
Yannis P.
14

Haben Sie das Skript "setup_xampp.bat" ausgeführt? Es befindet sich im XAMPP-Ordner und muss jedes Mal ausgeführt werden, wenn Sie den XAMPP-Ordner ändern.

Branyac
quelle
Dies funktioniert für mich, da ich Windows Server 2012 R2 verwende. Als ich meine Windows aktualisierte, befand sich meine XAMPP-Installation nach der Neuinstallation nicht auf Laufwerk C. Ich habe gerade setup_xampp.bat ausgeführt und alles erfolgreich konfiguriert, danke!
Zain Ul Abidin
14

Gehen Sie in xampp / apache / conf / httpd.conf und öffnen Sie es. Dann ändern Sie einfach 2 Zeilen

Listen 80
to
Listen 81

Und

ServerName localhost:80
to
ServerName localhost:81

Beginnen Sie dann mit der Verwendung von Administratorrechten.

Behnam Mohammadi
quelle
2
Ich hatte auch das Problem, Apache Server auszuführen. Ich habe die Portnummer geändert, aber es funktioniert nicht. PLZ helfen mir.
SrividhyaShama
1
Nach dem Portwechsel den PC neu starten und erneut versuchen oder Port 81 durch 82 oder 83 usw. ersetzen
Behnam Mohammadi
1
Sie müssen auch die Datei httpd-ssl.config ändern, um den 443-Standard-SSL-Port für Apache zu ändern.
Autopilot
Servername benötigt keine Portnummer
user27874
12

Begleitend zu Timmays Antwort müssen Sie zwei Änderungen vornehmen:

Hören Sie 80 -> Hören Sie 81 (in der Nähe von Zeile 58)

Servername localhost: 80 -> Servername localhost: 81 (in der Nähe von Zeile 218)

Sushant Kochar
quelle
11

In meinem Fall bestand das Problem darin, dass sowohl Port 80 als auch 443 verwendet wurden: Schritte zur Behebung des Problems sind:

  1. Öffnen Sie xampp und klicken Sie auf die Schaltfläche config
  2. Klicken Sie nun auf (Appache) httpd.conf (Im Editor oder einem anderen Editor öffnen)
  3. Klicken Sie nun auf ctrl+ h.
  4. Suchen 80und ersetzen durch8080
  5. Speichern Sie nun und klicken Sie auf Appache (httpd-ssl.conf).
  6. Suchen 443und ersetzen Sie nun durch 4430.
  7. Jetzt muss Ihre xampp einwandfrei funktionieren, da diese beiden Codes niemals von anderen Programmen auf Ihrem System verwendet werden.

Jetzt ist Ihr localhost als verfügbar localhost:8080

Schwarze Mamba
quelle
1
Vollständigste Antwort.
tno2007
6

Überprüfen Sie, ob Skype auf Ihrem Computer installiert ist.

Melden Sie sich an und gehen Sie zu Extras - Optionen - Erweitert - Verbindung und deaktivieren Sie das Kontrollkästchen Port 80 verwenden

- -

Überprüfen Sie, ob der Apache-Dienst bereits installiert ist, indem Sie services.msc an der Eingabeaufforderung run starten.

Wie lösche ich einen Dienst an der Eingabeaufforderung? sc lösche "serviceName"

Denken Sie daran, dass serviceName durch den genauen Namen des Apache-Dienstes ersetzt werden sollte, wie in der Liste der Dienste gezeigt.

Überprüfen Sie, ob IIS ausgeführt wird und Port 80 belegt. Wenn ja, deaktivieren Sie ihn.

- -

Überprüfen Sie, ob AVP (Kaspersky) ausgeführt wird und Port 80 belegt. Wenn ja, fügen Sie httpd.exe als Ausnahme zu zulässigen Programmen hinzu.

- -

Ich hoffe es hilft.

Noor M.
quelle
6

Ich habe VMWare Workstation installiert. Es verursachte also den Fehler.

Services.msc and stopped the 'Workstation' Services.

Das hat meine Probleme gelöst.

Vielen Dank

Arpit B Parekh
quelle
6

Wenn Sie Skype installiert haben, aktivieren Sie diese Option.

Geben Sie hier die Bildbeschreibung ein

Ein anderer Fall ist Windows 10

Überprüfen Sie dies:

  1. Gehen Sie zu Start und geben Sie services.msc ein
  2. Scrollen Sie im Fenster "Dienste" nach unten, um den World Wide Web Publishing-Dienst zu finden.
  3. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Stopp oder Deaktivieren, wenn Sie nur XAMPP verwenden möchten.

Geben Sie hier die Bildbeschreibung ein

vanduc1102
quelle
4

Gehen Sie zu C: xampp \ apache \ conf \ extra \ httpd-ssl.conf.
Suchen Sie die Zeile Listen 443, ändern Sie sie in Listen 4330 und starten Sie Ihren Computer neu

Geben Sie hier die Bildbeschreibung ein

[! [Bildbeschreibung hier eingeben] [2]] [2]

Kamran
quelle
3

Ich habe dieses ähnliche Problem auf meinem System gefunden, und das war von Skype installiert, bevor xampp installiert wurde. Ich habe einen ähnlichen Fehler. Um den Fehler zu beheben, folgte ich diesen:

  1. für eine Weile bei Skype abgemeldet,
  2. Apache über das xampp-Kontrollfeld neu gestartet,
  3. im Browser überprüft, ob es funktioniert hat oder nicht, von http: // localhost /
  4. habe es geschafft,
  5. erneut bei Skype angemeldet,
  6. alles funktioniert super, so einfach ist das

Ich brauchte nichts zu installieren oder zu deinstallieren, und das funktionierte für mich in weniger als 1 Minute.

Prost

mindlogixtech
quelle
Ja, es sollte funktionieren. Der Port von Skype XAMPP versucht ebenfalls, denselben Port zu verwenden. Wenn Sie sich über Skype abmelden, tritt das Problem nicht auf
Ripon Al Wasim,
2

Wenn Sie SQL Express oder einen .NET-Server installiert haben, müssen Sie anhalten. Öffnen Sie cmd im Administratormodus und geben Sie diese Zeile ein ...

Nettostopp war

Starten Sie jetzt Apache

Ajay Bhayani
quelle
2

Der beste Weg, dies zu tun:

Mit den anderen oben erläuterten Methoden bleiben Sie an vielen Stellen hängen. Wechseln Sie nicht den Port

2-Schritt-Prozess

1) Öffnen Sie die Eingabeaufforderung als Administrator

2) net stop http Geben Sie Y ein (wenn angegeben wird, dass das Schlüsselwort nicht identifiziert wird, und nur, weil der PATH Ihrer Umgebungsvariablen keinen Pfad zu Program Files / System32 enthält, nach dem Sie suchen können), drücken Sie Y an jeder Stelle, an der Sie gefragt werden Machen Sie sich keine Sorgen, Sie stoppen keinen wichtigen Prozess, sondern nur einen Prozess, der Ihren Port beansprucht hat. Und dieser Prozess übernimmt wieder Ihren Port, sobald Sie nicht arbeiten.

Ryuzaki
quelle
Dies ist der am meisten unterschätzte Kommentar in diesem gesamten Thread! Bravo Sir.
Jasttim
1

Wenn dieses Problem direkt nach einer vollständigen Neuinstallation unter Windows auftritt :

Es scheint, dass das Setup-Programm den http.exe-Prozess bereits startet und den anfänglichen Port 80 blockiert, diesen Status jedoch nicht in der Systemsteuerung widerspiegelt.

Testen Sie zur Überprüfung einfach in Ihrem Browser, ob ein Server ausgeführt wird. Geben Sie in die Adressleiste Ihres Browsers Folgendes ein:

localhost

Wenn das XAMPP-Dashboard angezeigt wird, ist alles in Ordnung. Alternativ können Sie im Task-Manager nach einem laufenden Prozess "Apache HTTP Server" (httpd.exe) suchen.

Sie können den Apache-Prozess mit der Datei xampp_stop.exe in Ihrem xampp-Basisordner stoppen. Dann sollte das XAMPP-Bedienfeld wie erwartet funktionieren.

Nessim
quelle
1

Es kann viele Methoden geben, um dieses Problem zu lösen, aber hier ist die einfachste:

Gehe zur XAMPP-Steuerung und ...

Als Administrator ausführen

Das ist alles..

Dies ist der goldene Punkt für eine solche Abnormalität.

Konzept hinter der Arbeit

Tatsächlich benötigen alle Dienste in Xampp die Abhängigkeit von Ports. Was passiert ist, wenn xampp keine besonderen Befugnisse erhält, sucht es nur nach einigen vordefinierten Ports, um diese Dienste auszuführen. Und falls diese Ports irgendwie schon besetzt sind ... eek! Der Dienst konnte nicht gestartet werden.

Aber wenn wir unserer Xampp-Steuerung (indem wir als Administrator ausgeführt werden) Supermacht verleihen, wird sie die Dienste auf den Ports irgendwie verwalten und mit Sicherheit auf der Erde ausführen. Und triumphiere! Sie haben es geschafft.

Permanenter Tipp für meinen lieben Bruder und meine Schwestern

Befolgen Sie diese Schritte, um die Bemühungen ein für alle Mal auszuführen:

  • Klicken Sie mit der rechten Maustaste auf die Datei xampp-control.exe und gehen Sie zu Eigenschaften.
  • Gehen Sie zur Registerkarte Kompatibilität .
  • Aktivieren Sie in den folgenden Einstellungen das Kontrollkästchen Dieses Programm als Administrator ausführen .
  • Übernehmen Sie die Änderungen. Und du bist fertig.

Jedes Mal, wenn Sie die Anwendung ausführen, wird sie mit dem Administratorstatus ausgeführt, und Sie müssen sich überhaupt nicht um die Ports kümmern.

Kartik Arora
quelle
1

In meinem Fall hatte ich keinen htdocsOrdner im xampp-Ordner. Es scheint, dass ein htdocsOrdner erforderlich ist , damit Sie einen leeren htdocsOrdner im xamppOrdner erstellen können .

cweitat
quelle
1

Derzeit wird XAMPP für die Laravel-Entwicklung verwendet.

Ich habe Skype auf meinem Desktop installiert, der die Ports 80 und 443 blockiert (beide von Apache verwendet).

Dieser Fix hat bei mir funktioniert:

1) C:\xampp\apache\conf\httpd.confSuchen Sie unter Listen 80und wechseln Sie zuListen 81

2) C:\xampp\apache\conf\extra\httpd-ssl.confSuchen Sie unter Listen 443und wechseln Sie zuListen 444

Vincent Tang
quelle
1

Hatte das gleiche Problem und keine der oben genannten Lösungen funktionierte. Durch sorgfältiges Lesen der Protokolle fand ich folgende Meldung:

10:55:42 [Apache] Port 443 wird von "" C: \ Programme (x86) \ VMware \ VMware Workstation \ vmware-hostd.exe "-u" C: \ ProgramData \ VMware \ hostd \ config.xml verwendet "" mit PID 1908!

Geben Sie hier die Bildbeschreibung ein

In meinem Fall musste ich nur den VMWare-Dienst stoppen, der automatisch ausgeführt wurde.

Geben Sie hier die Bildbeschreibung ein

Der Schlüssel besteht darin, die Meldung des XAMPP-Panels beim Start sorgfältig zu lesen.

Ich hoffe das hilft!

jsaf
quelle
Ich hatte das gleiche Problem. Vielen Dank!!
Maverick
0

Ich habe eine Lösung. Ich hatte dieses Problem und suchte nach einer Lösung, aber es gelang mir nicht. Also habe ich eine neuere Version von XAMPP heruntergeladen und auf die Option netstats im Programm geklickt.
Dort gab er mir eine Liste der Programme und der von ihnen verwendeten Ports und so sah ich aus und hatte kein Programm, das Port verwendete 80, aber Apache verwendet darüber hinaus 80auch Port 443... und es gab ein Programm namens Pando Media Boster an dieser Tür, ich startete den Task-Manager und beendete den Prozess von pando Average Boster. Hoffe es hat geholfen :).

David
quelle
0

Ich hatte auch das gleiche Problem. Und ich habe eine einfache und schnelle Lösung gefunden.

Das einzige, was Sie tun müssen, ist, den XAMPP-Server jedes Mal als Administrator auszuführen.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Keshav Bansal
quelle
0

Wahrscheinlich ändern Sie die Konfigurationsdatei in "httpd-ssl.conf".

<VirtualHost _default_:443>
DocumentRoot "D:/Server/xServer"
ServerName xyz.abc.com
SSLCertificateFile "conf/ssl.crt/xyz.crt"
SSLCertificateKeyFile "conf/ssl.key/sftaps.in.key"
</VirtualHost>

Möglicherweise ändern Sie den Zertifikatsnamen oder etwas im Apache-Ordner.

IshaniNet
quelle
0

Selbst wenn Sie Apache so konfiguriert haben, dass er einen anderen Port überwacht, wird dieser Fehler weiterhin angezeigt, wenn ein anderes Programm den Standard-SSL-Port 443 verwendet.

Was Sie auch bearbeiten müssen, ist die Datei http-ssl.conf und ändern Sie die Zeile Listen 443 und ändern Sie dort die Portnummer.

tno2007
quelle
0

Für mich war es wegen VMware (Dienste - es hat ungefähr 2 oder 3 verschiedene Dienste), stoppen Sie es und alles funktioniert gut

Pooriya Arazesh
quelle
0

Verwenden Sie eine beliebige Methode, für die der Server danach arbeitet. Sie können diese Adresse verwenden, um die Seite im Browser zu öffnen (wenn Sie den Port 80 durch 81 ersetzt haben).

http://localhost:81/phpmyadmin/
Priyansh Gupta
quelle
0

Führen Sie diese Befehle im Terminal aus und alles wird gut funktionieren:

sudo /etc/init.d/apache2 stop   
sudo /opt/lampp/lampp start
Vinit Kumar
quelle
-7

Salam,

Sie müssen die Port-Nr. Nicht ändern.

Gehen Sie nur zum Task-Manager und beenden Sie die Aufgabe aller anderen Programme, die ausgeführt werden.

und dann können Sie APACHE STARTEN .......

Mit freundlichen Grüßen,

user3550360
quelle
2
Das Beenden jedes einzelnen Programms scheint übertrieben.
EWit
Danke für die Antwort. Aber ich mag es nicht, andere Programme zu schließen.
Ripon Al Wasim