Ответ 1
Просто запустите setup_xampp.bat из оболочки (shell из панели управления XAMPP), и пути должны быть установлены автоматически для переносимой версии XAMPP для Windows. Это сработало для меня.
Я использую портативный сервер 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 существует, поэтому я не могу понять, как его исправить.
Любая помощь будет оценена
Просто запустите setup_xampp.bat из оболочки (shell из панели управления XAMPP), и пути должны быть установлены автоматически для переносимой версии 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
Измените путь ниже в файле httpd.conf в соответствии с настройками. Это решит проблему.
Define SRVROOT "C:\Apache24"
ServerRoot "${SRVROOT}"
Я бы подумал, что ServerRoot должен быть абсолютным. Используйте что-то вроде "/apache/docroot"
Если вы используете исполняемую версию, в корневом каталоге есть "setup_xampp.bat/.sh" script. Путь должен быть абсолютным, но script изменяет все необходимые пути к вашему текущему местоположению.
Для начала используйте букву диска с косой чертой (c:/apache/...).
ServerRoot "xampp\apache"
ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\apache"
ServerRoot "D:\XAMPP\apache"
Он работал у меня, если он не работает для вас, просто прокомментируйте значение ошибки после открытия xampp_start.exe
Запустите "setup_xampp.bat/.sh", а затем Удалите "\" в конце, так что ваш ServerRoot должен выглядеть как "C:.....\apache" НЕТ "C:.....\Apache \"
Убедитесь, что ваш ServerRoot
в httpd.conf правильно указан в пути Apache. В противном случае вы увидите это сообщение для каждого последующего модуля.
Я проверил строку 35 в xampp/apache/conf/httpd.conf, и это было:
ServerRoot "/xampp/apache"
Которого не существует....
Создайте каталог или измените путь к каталогу, содержащему ваши гипертекстовые документы.
У меня была точно такая же проблема с портативным Xampp на Windows 10 Home. Я прошел через все предложения, и ни один не работал. У меня все получилось с настройками брандмауэра Windows и с моей стороны произошла ошибка.
Мой флеш-накопитель на моем ноутбуке был обозначен как Drive E, а на рабочем столе - Drive F Однажды я исправил это, используя раздел диска, и изменил букву диска E на моем рабочем столе, чтобы Windows запросил доступ к брандмауэру, и все щелкнуло.
Шаги по исправлению буквы диска были следующими: 1. Нажмите клавишу Windows и введите " Раздел", "вверху создайте и отформатируйте разделы жесткого диска ", нажмите "Enter". 2. Найдите нужный диск на верхней панели и нажмите Это. 3. Щелкните правой кнопкой мыши по нему и выберите "Изменить букву диска и путь", нажмите " ОК". 4. Теперь попробуйте запустить панель управления xampp и запустить Apache и Mysql 5. Если вы получаете брандмауэр Windows, нажмите " Разрешить".
Я не могу сказать, что это сработает, но это сработало для меня, и это то, что я добавил в эту дискуссию. Я также думаю, что это могло быть только из-за того, что брандмауэр не разрешил использование буквы диска.
Ниже решено. Я неправильно указал 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/"
Надеюсь, это поможет
Это для изменения каталога 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>
Я также столкнулся с той же проблемой при смене ноутбука. Спасибо