Не удалось запустить 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.so существует, поэтому я не могу понять, как его исправить.

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

Ответ 1

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

Ответ 2

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

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

Ответ 3

Если вы откроете редактор и перейдете к точной строке, указанной в сообщении об ошибке (в файле 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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

  • Перейдите в каталог XAMPP, вы найдете папку с именем apache, откройте его, затем скопируйте его путь, мой путь: D:\Hacking Tools 2\Programs\XAMPP V2\apache "
  • Откройте apache\conf\httpd.conf с любым текстовым редактором
  • Прокрутите вниз до строки 30-40
  • Вы найдете такой код: ServerRoot "xampp\apache"
  • Теперь измените его как папку apache, как я сказал в Шаге # 1, мой путь "D:\Hacking Tools 2\Programs\XAMPP V2\apache", поэтому мой код будет ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\apache"
  • Он должен выглядеть примерно так: ServerRoot "D:\XAMPP\apache"
  • Теперь вернитесь в основной каталог XAMPP и запустите xampp_start.exe

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

Ответ 9

Запустите "setup_xampp.bat/.sh", а затем Удалите "\" в конце, так что ваш ServerRoot должен выглядеть как "C:.....\apache" НЕТ "C:.....\Apache \"

Ответ 10

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

Ответ 11

Я проверил строку 35 в xampp/apache/conf/httpd.conf, и это было:

ServerRoot "/xampp/apache"

Которого не существует....

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

Ответ 12

У меня была точно такая же проблема с портативным Xampp на Windows 10 Home. Я прошел через все предложения, и ни один не работал. У меня все получилось с настройками брандмауэра Windows и с моей стороны произошла ошибка.

Мой флеш-накопитель на моем ноутбуке был обозначен как Drive E, а на рабочем столе - Drive F Однажды я исправил это, используя раздел диска, и изменил букву диска E на моем рабочем столе, чтобы Windows запросил доступ к брандмауэру, и все щелкнуло.

Шаги по исправлению буквы диска были следующими: 1. Нажмите клавишу Windows и введите " Раздел", "вверху создайте и отформатируйте разделы жесткого диска ", нажмите "Enter". 2. Найдите нужный диск на верхней панели и нажмите Это. 3. Щелкните правой кнопкой мыши по нему и выберите "Изменить букву диска и путь", нажмите " ОК". 4. Теперь попробуйте запустить панель управления xampp и запустить Apache и Mysql 5. Если вы получаете брандмауэр Windows, нажмите " Разрешить".

Я не могу сказать, что это сработает, но это сработало для меня, и это то, что я добавил в эту дискуссию. Я также думаю, что это могло быть только из-за того, что брандмауэр не разрешил использование буквы диска.

Ответ 13

Ниже решено. Я неправильно указал bin/directory/, поэтому столкнулся с проблемой:

если вы установили apache на C:/httpd-2.4.41-o102s-x64-vc14-r2/Apache24
тогда модули на.. C:/httpd-2.4.41-o102s-x64-vc14-r2/Apache24/modules

So, the file           C:/httpd-2.4.41-o102s-x64-vc14-r2/Apache24/conf/httpd.conf
should have
       Define SRVROOT "C:/httpd-2.4.41-o102s-x64-vc14-r2/Apache24/"

Надеюсь, это поможет

Ответ 14

Это для изменения каталога XAMPP. Таким образом, вы должны изменить каталог, а также ServerRoot "E: /xampp/apache"

DocumentRoot "E:/xampp/htdocs"


<Directory "E:/xampp/htdocs">


ScriptAlias /cgi-bin/ "E:/xampp/cgi-bin/"


<Directory "E:/xampp/cgi-bin">
    AllowOverride All
    Options None
    Require all granted
</Directory>

Я также столкнулся с той же проблемой при смене ноутбука. Спасибо