web-dev-qa-db-fra.com

Apache n'a pas pu être démarré - ServerRoot doit être un répertoire valide et impossible de trouver le module spécifié.

J'utilise un serveur portable xampp et je rencontre des problèmes avec le serveur http Apache: "ServerRoot doit être un répertoire valide"

Sortie de ligne de commande:

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

J'ai vérifié la ligne 35 de xampp/Apache/conf/httpd.conf et c'était:

ServerRoot "/xampp/Apache"

Ce qui n'existe pas. Mes dossiers sont:

K:/../../../xampp/Apache/conf     <- where the httpd.conf is
K:/../../../xampp/Apache/         <- the server root
K:/../../../xampp/Apache/modules  <- where server modules are

Si je change (à la ligne 35) en

ServerRoot ".."

Ça dit: 

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

J'ai vérifié, et modules/mod_access_compat.so existe, donc je ne peux pas comprendre comment résoudre ce problème.

Toute aide serait appréciée

24
BackSlash

Il suffit d’exécuter setup_xampp.bat à partir de Shell (Shell à partir du panneau de configuration XAMPP) et les chemins doivent être définis automatiquement pour la version portable de XAMPP pour Windows. ça a marché pour moi.

46
Bostjan

accédez au fichier httpd.conf dans conf direcotry dans Apache24 ou à tout autre fichier Apache.

Allez à la ligne ServerRoot = ".." et remplacez la valeur par le chemin où se trouve Apache, par exemple "C:\Program Files\Apache24".

17
Guru

Si vous ouvrez un éditeur et passez à la ligne exacte indiquée dans le message d'erreur (dans le fichier httpd.conf), voici ce que vous verriez:

#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

Les chemins d'accès aux modules, par exemple modules/mod_actions.so, sont tous déclarés relativement, et ils sont par rapport à la valeur définie par ServerRoot. ServerRoot est défini en haut de httpd.conf (ctrl-F pour ServerRoot ").

ServerRoot est généralement défini absolument, ce qui serait K:/../../../xampp/Apache/ dans votre message.

Mais il peut également être défini relativement, relatif à le répertoire de travail ( cf. ). Si le répertoire de travail est le dossier Apache bin, utilisez cette ligne dans votre httpd.conf:

ServerRoot ../

Si le répertoire de travail est le dossier Apache, cela suffira:

ServerRoot .

Si le répertoire de travail est le dossier C: (un dossier au-dessus du dossier Apache), utilisez ceci:

ServerRoot Apache

Pour les services Apache, le répertoire de travail serait C:\Windows\System32 , utilisez donc ceci:

ServerRoot ../../Apache
4
Pacerier

Changez le chemin ci-dessous dans le fichier httpd.conf de votre configuration Cela résoudra le problème.

Define SRVROOT "C:\Apache24"   
ServerRoot "${SRVROOT}"
1
Dhiraj Surve

Utilisez la lettre de lecteur avec des barres obliques pour vous lancer (c:/Apache/...).

1
hcupro

Exécutez "setup_xampp.bat/.sh" puis Supprimez "\" à la fin pour que votre ServerRoot ressemble à "C: .....\Apache"NO "C: .....\Apache \"

1
gusanare
  1. Accédez à votre répertoireXAMPP, vous trouverez un dossier appeléApache, ouvrez-le, puis copiez son chemin, mon chemin est "D:\Outils de piratage 2\Programmes\XAMPP V2\Apache "
  2. OuvrezApache\conf\httpd.confavec n’importe quel éditeur de texte
  3. Faites défiler jusqu'à la ligne 30-40
  4. Vous trouverez un code comme celui-ci: ServerRoot "xampp\Apache"
  5. Maintenant, changez le pour qu’il soit le répertoire Apache, comme je l’ai dit dansStep # 1, mon chemin est "D:\Outils de piratage 2\Programmes\XAMPP V2\Apache", donc , mon code sera ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\Apache"
  6. Cela devrait ressembler à ceci: ServerRoot "D:\XAMPP\Apache"
  7. Retournez maintenant dans le répertoireXAMPPmain et exécutezxampp_start.exe

Cela a fonctionné pour moi, si cela ne fonctionne pas pour vous, commentez avec la valeur d'erreur après avoir ouvert le fichier xampp_start.exe

Assurez-vous que votre ServerRoot dans httpd.conf pointe correctement sur le chemin Apache. Sinon, vous verrez ce message pour chaque module supplémentaire. 

1
Greg Woz

Je pense que ServerRoot doit être absolu. Utilisez quelque chose comme "/ Apache/docroot"

1
souser

Si vous utilisez une version réelle, il existe un script "setup_xampp.bat/.sh" dans le répertoire racine . Le chemin doit être absolu, mais le script modifie tous les chemins nécessaires en votre emplacement actuel.

1
0x126

J'ai vérifié la ligne 35 de xampp/Apache/conf/httpd.conf et c'était:

ServerRoot "/ xampp/Apache"

Ce qui n'existe pas. ...

Créez le répertoire ou modifiez le chemin d'accès au répertoire contenant vos documents hypertexte.

0
LeeGee