Xampp - Apache неожиданно отключается, пустой файл журнала и никаких событий

У меня XAMPP установлен на моей машине. Я пытаюсь запустить Apache с панели управления XAMPP.

Я запустил панель управления XAMPP, щелкнув правой кнопкой мыши ярлык и выбрав "Запуск от имени администратора" (я зарегистрирован в учетной записи с правами администратора). Панель управления запускается, и все выглядит в порядке (нет сообщений об ошибках/предупреждений).

Xampp Control Panel After Startup

Когда я нажимаю кнопку "Пуск" рядом с Apache, я получаю следующее сообщение об ошибке:

2:22:44 PM  [Apache]    Attempting to start Apache app...
2:22:45 PM  [Apache]    Status change detected: running
2:22:45 PM  [Apache]    Status change detected: stopped
2:22:45 PM  [Apache]    Error: Apache shutdown unexpectedly.
2:22:45 PM  [Apache]    This may be due to a blocked port, missing dependencies, 
2:22:45 PM  [Apache]    improper privileges, a crash, or a shutdown by another method.
2:22:45 PM  [Apache]    Check the "/xampp/apache/logs/error.log" file
2:22:45 PM  [Apache]    and the Windows Event Viewer for more clues

Xampp Control Panel Apache Error

Обратите внимание, что это говорит мне, что Apache неожиданно завершает работу и проверяет файл error.log и средство просмотра событий Windows.

Я проверил файл error.log, но он пуст:

Apache Error Log File Empty

Я также проверял любые события, используя Windows Event Viewer, но средство просмотра событий не показывает никаких событий (в разделе "Приложение" ):

Windows Event Viewer No Application Events

Я проверил программы, которые могут блокировать порты и т.д. (например, Skype, Visual SVN Server) и закрыл любые программы, которые могут вызвать проблему.

Есть ли что-то еще, что я могу сделать, чтобы узнать, что может произойти?

Спасибо.

UPDATE

Я понял проблему, пытаясь запустить apache из командной строки DOS. Запуск из командной строки дал мне конкретные ошибки и местоположение в файле httpd.conf, где были эти ошибки. Оказывается, мои значения ServerRoot и DocumentRoot были неправильными (указав на неправильные каталоги). Я изменил их, чтобы указать на правильные каталоги, и теперь я могу запустить apache с панели управления.

Любопытно, почему я не видел сообщения об ошибках ServerRoot и DocumentRoot при запуске с панели управления?

Ответ 1

Просто хотел упомянуть, что я также использовал технику командной строки.

МОЯ ПРОБЛЕМА: я перезапустил Apache, но мне не удалось запустить программу снова.

Решение 1: Это не сработало. У меня не было никаких программ, таких как SKYPE, поддерживающих порты, но я все равно пытался настроить параметры порта.

Решение 2: Это не сработало. Еще одно решение, которое я прочитал, - это также разрешить публичный доступ в брандмауэре Windows или отключить межсетевой экран. Я попытался это сделать.

Решение 3: Это работало Наконец я наткнулся на этот пост. Я открыл gitbash (хотя командная строка по умолчанию будет работать нормально).

Я набрал "cd c:/xampp/apache/bin" Затем я набрал "httpd"

Это показало мне синтаксическую ошибку и указало на определенную строку в моем файле "httpd-vhosts". Я понял, что не так с этой линией, в моем случае отсутствует "#". Сохранил файл, а затем снова набрал "httpd". На этот раз сервер Apache запустился.

Надеюсь, это поможет некоторым людям!

Ответ 2

В моем случае мне пришлось установить XAMPP на сервере с IIS, и мне нужно запустить IIS. Итак, в XAMPP, если вы измените порт через главную кнопку Config > Service and Port Settings, он ничего не сделает. Вместо этого просто нажмите кнопку Config для Apache, а затем Apache (httpd.conf). Измените "слушать 80" на "слушать 8080" (без кавычек) или любой номер порта, который вы хотите - просто убедитесь, что он в настоящее время не используется. Надеюсь, это поможет кому-то.

Ответ 3

Эта проблема может произойти по трем причинам 1. Ошибка ServerRoot, DocumentRoot. 2. Другие приложения, которые уже используют порты в httpd.config или httpd-ssl.config. Пользовательская кнопка NetStat на панели управления XAMP для проверки этого конфликта. 3. Порт, установленный на панели управления XAMP для httpd/httpd-ssl, не соответствует тому, что установлено в его соответствующих файлах конфигурации.

Пожалуйста, исправьте вышеуказанные несоответствия, чтобы исправить проблему.

Ответ 4

Я столкнулся с той же проблемой, и следующим образом я решил это.

  • Skype использовал порт 80, который требуется сервером Apache. поэтому откройте skype и откройте "Инструменты" > "Параметры" > "Дополнительно" > "Соединение". Удалить галочку "Использовать порты 80 и 443 для дополнительных входящих соединений"

  • Откройте панель управления XAMPP и откройте файл "httpd-ssl.config" и найдите строку "Прослушать 443" на другой порт (например, "Слушать 444" ).

Ответ 5

Возможно, вам нужно настроить порты. В панели управления XAMPP в строке Apache вы можете увидеть кнопку с именем "Config". Нажмите на него, а затем в "Apache (httpd.conf)". Он открывает файл, и вы должны прокрутить его вниз до строки, где есть что-то вроде:

# Слушайте 12.34.56.78:80

# Слушай 80

Измените строку "#Listen 80" на "#Listen 8088".

Может быть, это решит проблему.

Ответ 6

Мои файлы журналов не были заполнены. Средство просмотра событий Windows не регистрировало ошибки, возникающие в Apache. Но запуск apache из строки cmd дал сообщение об ошибке, не удалось связать порт 80. У меня был запущен скайп на порту 80. Выход из скайпа не решил проблему. Поэтому я настроил свой порт на 90 в файле httpd.conf.