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

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

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


person BackSlash    schedule 27.01.2013    source источник


Ответы (14)


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

person Bostjan    schedule 15.05.2014
comment
Он говорит извините, но нечего делать - person Michael Rogers; 09.04.2017
comment
Работает все ... setup_xampp.bat его командный файл будет настроен со всеми путями в xampp ... - person OpenWebWar; 25.04.2017
comment
это особенно полезно, когда вы устанавливаете xampp в настраиваемый каталог (не c: / xampp ...) - person d.raev; 02.05.2017
comment
где этот setup_xampp.bat? Я столкнулся с той же проблемой здесь - person adrian li; 04.08.2018
comment
В худшем случае измените Listen 80 на Listen 90 в httpd.conf. Это решение предназначено только для создания среды разработки на локальном компьютере, а не на реальном сервере. Перезапустите Xampp и зайдите на сайт @ порт 90. - person Sudeep nayak; 01.11.2018
comment
Сработало у меня :) - person Parag Jadhav; 13.02.2020
comment
@bostjan, брат, ты спас мне жизнь. Спасибо за ваше решение. ???????????? - person imnhasan; 22.03.2020
comment
Сработало у меня;) - person Hassan Raza; 18.05.2020
comment
Сообщаю, что это сработало и для меня - person Haider Ali J Al-Rustem; 25.02.2021

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

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

person Guru    schedule 07.05.2015
comment
Я думал, вы не должны устанавливать XAMPP в программные файлы из-за проблем с разрешениями в Windows? - person Eoin; 20.01.2017
comment
Также, если ваш каталог выглядит как «d: \ Apache24», не забудьте внести изменения во всех местах httpd.conf. Есть много изменений, которые по умолчанию относятся к c: \ Apache24. - person Ashish Goyal; 09.05.2018

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

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

Define SRVROOT "C:\Apache24"   
ServerRoot "${SRVROOT}"
person Dhiraj Surve    schedule 09.04.2018

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

Примеры:

  • /etc/apache2/apache2 для Linux
  • "C:\Program Files\Apache24" для Windows
person Greg Wozniak    schedule 20.03.2017
comment
Добавьте пример пути. - person Hamfri; 05.11.2020

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

person souser    schedule 27.01.2013
comment
..это не абсолютное? - person Arth; 02.08.2018

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

person 0x126    schedule 26.07.2013

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

person hcupro    schedule 29.08.2013

  1. Перейдите в каталог XAMPP, вы найдете папку с именем apache, откройте ее, затем скопируйте ее путь, мой путь - " D: \ Hacking Tools 2 \ Programs \ XAMPP V2 \ apache "
  2. Откройте apache \ conf \ httpd.conf в любом текстовом редакторе.
  3. Прокрутите вниз до строки 30-40.
  4. Вы найдете такой код: ServerRoot "xampp\apache"
  5. Теперь измените его на каталог apache, как я сказал в Шаге №1, мой путь - "D: \ Hacking Tools 2 \ Programs \ 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

person Ziad Amerr    schedule 02.05.2016

Запустите "setup_xampp.bat / .sh", а затем удалите "\" в конце, чтобы ваш ServerRoot был похож на "C: ..... \ apache" NO "C: ... .. \ apache \ "

person gusanare    schedule 20.05.2016

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

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

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

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

person Kelly    schedule 16.05.2019

Ниже решено. Я ошибочно указал 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/"

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

person Manohar Reddy Poreddy    schedule 29.09.2019

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

ServerRoot "/ xampp / apache"

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

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

person Lee Goddard    schedule 03.01.2018

Это для изменения каталога 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>

Я также столкнулся с той же проблемой при смене ноутбука. Благодарность

person Amranur Rahman    schedule 03.10.2019