Ich verwende den tragbaren Xampp-Server und habe Probleme mit dem Apache-HTTP-Server. Er sagt, "ServerRoot muss ein gültiges Verzeichnis sein"
Befehlszeilenausgabe:
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 35 of K:/../../../xampp/Apache/conf/httpd.conf: ServerRoot must be a valid directory
Apache could not be started
Ich habe die Zeile 35 von xampp/Apache/conf/httpd.conf überprüft und es war:
ServerRoot "/xampp/Apache"
Welche nicht existiert Meine Ordner sind:
K:/../../../xampp/Apache/conf <- where the httpd.conf is
K:/../../../xampp/Apache/ <- the server root
K:/../../../xampp/Apache/modules <- where server modules are
Wenn ich (in Zeile 35) in umstelle
ServerRoot ".."
Es sagt:
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 65 of K:/../../../xampp/Apache/conf/httpd.conf: Cannot load modules/mod_access_compat.so into server: Unable to find the specified module
Apache could not be started
Ich habe geprüft, und modules/mod_access_compat.so existiert, daher kann ich nicht herausfinden, wie ich das Problem beheben kann.
Jede Hilfe wird geschätzt
Führen Sie einfach setup_xampp.bat von Shell (Shell von XAMPP Control Panel) aus und die Pfade sollten automatisch für die portable Version von XAMPP für Windows festgelegt werden. Es hat für mich gearbeitet.
navigieren Sie zur Datei httpd.conf im Verzeichnis "conf" in Apache24 oder zu Ihrer Apache-Datei.
Gehen Sie in die Zeile ServerRoot = ".." und ändern Sie den Wert in den Pfad, in dem sich Apache befindet, wie "C:\Programme\Apache24".
Wenn Sie einen Editor öffnen und zur genauen Zeile springen, die in der Fehlermeldung (in der Datei httpd.conf
) angezeigt wird, sehen Sie Folgendes:
#LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule auth_form_module modules/mod_auth_form.so
Die Pfade zu den Modulen, z. modules/mod_actions.so
, werden alle relativ angegeben und sind relativ zu dem durch ServerRoot
eingestellten Wert. ServerRoot
ist am Anfang von httpd.conf
(Strg-F für ServerRoot "
) definiert.
ServerRoot wird normalerweise absolut festgelegt, was in Ihrem Posting K:/../../../xampp/Apache/
wäre.
Es kann jedoch auch relativ gesetzt werden, relativ zu dem Arbeitsverzeichnis ( cf. ). Wenn das Arbeitsverzeichnis der Apache bin
-Ordner ist, verwenden Sie diese Zeile in Ihrem httpd.conf
:
ServerRoot ../
Wenn das Arbeitsverzeichnis der Apache-Ordner ist, würde dies ausreichen:
ServerRoot .
Wenn das Arbeitsverzeichnis der Ordner C: ist (ein Ordner über dem Apache-Ordner), verwenden Sie Folgendes:
ServerRoot Apache
Für Apache-Dienste lautet das Arbeitsverzeichnis C:\Windows\System32
. Verwenden Sie also Folgendes:
ServerRoot ../../Apache
Ändern Sie den Pfad in der Datei httpd.conf in Ihr Setup. Dies wird das Problem beheben.
Define SRVROOT "C:\Apache24"
ServerRoot "${SRVROOT}"
Verwenden Sie den Laufwerksbuchstaben mit Schrägstrich (c:/Apache/...).
Führen Sie "setup_xampp.bat/.sh" und dann .__ aus. Löschen Sie "\" am Ende, damit Ihr ServerRoot wie "C: .....\Apache"NOaussehen sollte "C: .....\Apache \"
ServerRoot "xampp\Apache"
ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\Apache"
seinServerRoot "D:\XAMPP\Apache"
Es hat für mich funktioniert, wenn es für Sie nicht funktioniert, kommentieren Sie einfach den Fehlerwert nach dem Öffnen der xampp_start.exe
Stellen Sie sicher, dass ServerRoot
in httpd.conf korrekt auf den Apache-Pfad verweist. Andernfalls wird diese Meldung für jedes weitere Modul angezeigt.
Ich würde denken, dass ServerRoot absolut sein muss. Verwenden Sie etwas wie "/ Apache/docroot"
Wenn Sie eine aktuelle Version verwenden, befindet sich im Stammverzeichnis ..__ ein Skript "setup_xampp.bat/.sh". Der Pfad muss absolut sein, aber das Skript ändert alle erforderlichen Pfade an Ihren aktuellen Speicherort.
Ich habe die Zeile 35 von xampp/Apache/conf/httpd.conf überprüft und es war:
ServerRoot "/ xampp/Apache"
Welche nicht existiert ...
Erstellen Sie das Verzeichnis oder ändern Sie den Pfad in das Verzeichnis, das Ihre Hypertext-Dokumente enthält.
Ich hatte genau das gleiche Problem mit Xampp Portable unter Windows 10 Home. Ich ging alle Vorschläge durch und keiner funktionierte. Ich habe es mit den Windows-Firewall-Einstellungen und einem Fehler von meiner Seite zum Laufen gebracht.
Mein USB-Stick war auf meinem Laptop mit Laufwerk E und auf meinem Desktop mit Laufwerk F gekennzeichnet. Einmal korrigierte ich das mit der Festplattenpartition und änderte den Laufwerksbuchstaben auf E für meinen Desktop zu Windows, fragte nach dem Zugriff für die Firewall und alles klickte.
Die Schritte, um den Laufwerksbuchstaben zu korrigieren, waren: 1. Drücken Sie die Windows-Taste und geben Sie Partition, "Festplattenpartitionen erstellen und formatieren" oben ein, drücken Sie die Eingabetaste 2. Suchen Sie im oberen Bereich das Laufwerk, nach dem Sie suchen, und klicken Sie darauf. 3. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Laufwerksbuchstaben und -pfad ändern. Klicken Sie auf okay. 4. Versuchen Sie nun, xampp control panel zu starten, und starten Sie Apache und MySQL 5., wenn Sie das erhalten Windows Firewall Klicken Sie auf Erlauben.
Ich kann nicht sagen, dass dies funktionieren wird, aber es hat für mich funktioniert und das habe ich zu dieser Diskussion hinzugefügt. Ich denke auch, dass es vielleicht nur die Firewall gewesen ist, die den einen oder anderen Laufwerksbuchstaben nicht zugelassen hat.