Не удалось запустить Apache-ServerRoot должен быть допустимым каталогом и не может найти указанный модуль

я использую портативный сервер xampp, и у меня возникли проблемы с http-сервером Apache, он говорит: "ServerRoot должен быть допустимым каталогом"

вывод командной строки:

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

Я проверил строку 35 xampp/apache/conf / httpd.conf, а именно:

ServerRoot "/xampp/apache"

, которого не существует. Мои папки:

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

если я изменю (в строке 35) на

ServerRoot ".."

Он говорит:

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

Я проверил, и modules / mod_access_compat.так существует, поэтому я не могу понять, как это исправить.

любая помощь будет оценена

11 ответов


просто запустить setup_xampp.bat из оболочки и пути должны быть установлены автоматически для портативной версии XAMPP для windows. Это сработало для меня.


перейдите к httpd.conf файл в conf direcotry в Apache24 или любой файл apache у вас есть.

перейти к ServerRoot=".."линия и изменить значение на путь, где apache расположен, как "C:\Program Files\Apache24"


если открыть редактор и перейти к точной строке, показанной в сообщении об ошибке (в файле httpd.conf), это то, что вы увидите:

#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

на пути к модулям, например,modules/mod_actions.so, все указано относительно, и они по отношению к заданное значение ServerRoot. ServerRoot определяется в верхней части httpd.conf (ctrl-F для ServerRoot ").

ServerRoot обычно устанавливается абсолютно, что было бы K:/../../../xampp/apache/ в вашем посте.

но это также можно установить относительно,по отношению к рабочий каталог (cf.). Если рабочим каталогом является Apache bin папка, затем используйте эту строку в своем httpd.conf:

ServerRoot ../

если рабочий каталог является папкой Apache, то этого будет достаточно:

ServerRoot .

если рабочий каталог является папкой C: (одна папка над папкой Apache), то используйте это:

ServerRoot Apache

для служб apache рабочий каталог будет C:\Windows\System32, так что используйте этот:

ServerRoot ../../Apache

Я бы подумал, что ServerRoot должен быть абсолютным. Используйте что-то вроде "/apache/docroot"


Если вы используете версию actuall, есть "setup_xampp.bat/.sh" скрипт в корневом каталоге. Путь должен быть абсолютным, но сценарий изменяет все необходимые пути к вашему текущему местоположению.


используйте букву диска с косыми чертами, чтобы начать работу (c:/apache/...).


  1. перейти к XAMPP каталог, вы найдете папку под названием apache, откройте его, затем скопируйте его путь, мой путь "D:\Hacking инструменты 2\программы\XAMPP V2\apache"
  2. открыть Апач\конф\файл httpd.conf С любым текстовым редактором
  3. прокрутите вниз до линии 30-40
  4. вы найдете такой код: ServerRoot "xampp\apache"
  5. теперь измените его на apache каталог, как я сказал в Шаг #1 мой путь "D:\Hacking инструменты 2\программы\XAMPP V2\apache", значит, мой код будет ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\apache"
  6. это должно выглядеть как-то так: ServerRoot "D:\XAMPP\apache"
  7. теперь вернитесь к XAMPP основной каталог и запустить xampp_start.exe

это сработало для меня, если это не сработает для вас, просто прокомментируйте значение ошибки после открытие xampp_start.exe


Run "setup_xampp.bat/.sh-а потом ... Удалите " \ " в конце, поэтому ваш ServerRoot должен быть похож "С.:....\ apache"нет "С.:....\ apache\"


убедитесь, что ваш ServerRoot в httpd.conf правильно указывает на путь Apache. В противном случае вы увидите это сообщение для каждого последующего модуля.


изменить путь ниже в httpd.conf файл для вашей установки. Это исправит проблему.

Define SRVROOT "C:\Apache24"   
ServerRoot "${SRVROOT}"

Я проверил строку 35 xampp/apache/conf / httpd.conf, а именно:

ServerRoot"/xampp / apache"

, которого не существует. ...

создайте каталог или измените путь к каталогу, содержащему гипертекстовые документы.