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.