XAMPP: не удалось запустить Apache (Windows 10)


90

Я использую XAMPP, и я могу запустить Apache, но MySQL ( phpMyAdmin ) запускается!

Когда я запускаю, я получаю эту ошибку;

10:07:49 [Apache] Error: Apache shutdown unexpectedly.
10:07:49 [Apache] This may be due to a blocked port, missing dependencies,
10:07:49 [Apache] improper privileges, a crash, or a shutdown by another method.
10:07:49 [Apache] Press the Logs button to view error logs and check
10:07:49 [Apache] the Windows Event Viewer for more clues
10:07:49 [Apache] If you need more help, copy and post this
10:07:49 [Apache] entire log window on the forums

Я ищу по нему и меняю порт Apache в Config -> Service and Port setting. Я имею;

Service name: Apache 2.4
Main port: 122
SSL port: 444

Я также удаляю Skype (версия для Windows 8/10 / Metro). Ничего не работает. В файле httpd.conf у меня есть;

Listen 122
ServerName localhost:122

Я запускаю это через apache_start.batи получаю;

(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address [::]:445
(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address 0.0.0.0:445
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

Обратите внимание, что все файлы журналов не существуют! Скайп удален.


Вы проверили, не заблокирован ли порт?
Rizier123 06

1
Попробуйте также запустить от имени администратора
nonamorando 06

3
Вы запускаете скайп, когда пытаетесь включить apache? В таком случае измените настройки скайпа.
iSaumya 06

3
Вы не можете иметь localhost:80и слушать порт 122. Выберите порт для прослушивания.
Лоренц Мейер

Хорошо, я внес некоторые изменения: @ Rizier123 -> Я проверяю, но не уверен, что это хороший способ. @ Уилл-Кэмпбелл -> Да, но не более того. @iSaumya -> Скайпа нет на моем компьютере. @ Lorenz-Meyer -> У меня есть сейчас Listen 122иServerName localhost:122
Феликс Дежарден

Ответы:


224

Обновление: 15 мая 2018 г .:

Последнее обновление Windows 10 (повторно) активировало службу публикации в Интернете (на немецком языке: WWW-Publishingdienst ). Это может зависеть от параметров, выбранных вами во время настройки обновления, которое вы можете выполнить впоследствии.

Обновление: 4 августа 2015 г .:

Если вы выполнили чистую установку Windows 10, возможно, у вас нет службы публикации Word Wide Web . В этом случае простая установка WAMP / XAMPP должна работать нормально.

Если это не так, попробуйте установить Visual C ++ Redistributable, а затем переустановите WAMP / XAMPP.


Я столкнулся с аналогичной проблемой с WAMP. В Windows 10 TP предустановлена служба публикации Word Wide Web . Это связано с IIS, и вы можете удалить его, если он вам не нужен.

Это блокирует порт 80, из-за чего Apache ведет себя странно. Вы можете сделать следующее и попробовать еще раз.

  • Зайдите в Пуск, введите services.msc
  • Прокрутите вниз в окне «Службы», чтобы найти службу публикации в Интернете .
  • Щелкните его правой кнопкой мыши и выберите Остановить .

Это должно освободить порт 80, а перезапуск WAMP / XAMPP должен помочь вам начать работу!

Есть и другие способы исправить это. См. Раздел «Как заставить WAMP работать в Windows 10» .


7
Что делать, если у меня нет в списке услуг «Служба публикации в Интернете»?
Xtremefaith

6
Имя сервиса является W3SVC , а описание является World Wide Web Publishing Service . Сначала я не думал, что у меня есть служба, потому что я не видел службу, описанную при сортировке по имени.
Jake Z

1
Да, у меня тоже была эта проблема, он постоянно говорил мне: «Процесс с PID 4 использует порт 80», когда я его проверял, имя процесса было «System». Я все думал, что могу испортить свой компьютер, если попытаюсь остановить этот процесс. Но это сработало отлично. Спасибо
Kebab Programmer

1
Для тех, кто использует Uniform server Z (что отлично!), Я могу подтвердить, что это работает и для этого сервера.
MisterM

1
@PraveenPuglia гул .. интересный комментарий, работайте со мной! я пытаюсь удалить файл «ntoskrnl.exe», это причина порта 4 ... много поисковиков в Google говорит о вирусе ... хорошие службы, которые нужно остановить, работают, лол .. спасибо братан
KingRider

38

Решить эту проблему несложно:

  1. Откройте командную строку с правами администратора
    • Найдите «cmd», щелкните его правой кнопкой мыши и выберите «Администратор».
  2. В командной строке введите net stop W3SVCи Enter.

Теперь вы можете щелкнуть WAMPP и перезапустить все службы. Откройте браузер и перейдите на «localhost».

Если вам нужно снова запустить W3SVC,

  1. Откройте командную строку с правами администратора
  2. В командной строке введите net start W3SVCи Enter.

В выпущенной версии Windows 10 я получаю сообщение «Произошла системная ошибка 3. Доступ запрещен».
Mike_Laird

Вам нужно быть администратором. Попробуйте снова.
ДИАНГЕЛИС

Да, спасибо ДИАНГЕЛИСЖ. В Windows 10 щелкните правой кнопкой мыши cmd, а затем приведенные выше инструкции, затем щелкните правой кнопкой мыши httpd.exe, и Apache снова заработает. Поле httpd.exe - это черная пустота, но Apache работает.
Mike_Laird

У меня была такая же проблема в Windows 10 с использованием XAMPP. После каждого перезапуска мне приходилось переходить в панель управления XAMPP, переустанавливать и снова запускать службы Apache и MySQL. Запуск панели управления XAMPP от имени администратора, похоже, вылечил это, спасибо!
SharpC

это правильный ответ, все, что вам нужно сделать, это выключить IIS, а затем запустить xampp. Панель управления - Админ - Информационные службы Интернета - "Стоп" Вот и все. Проще простого. (то же, что и выше, только через интерфейсы.)
Элейн Осипова

17

Я нашел способ решить эту проблему:

  1. Если вы также используете Skype, снимите флажок с поля, в котором указано, что нужно использовать порты 80 и 443 (Дополнительно -> Настройки -> Дополнительно -> Подключения -> Снимите отметку с портов 80 и 443).
  2. Перезапустите Skype и XAMPP.

Если это не сработает,

  1. Перейдите в Пуск и введите services.msc.
  2. Найдите «Служба публикации в Интернете»
  3. Щелкните эту запись правой кнопкой мыши, выберите «Стоп», затем перезапустите XAMPP.

Если это не сработало и «Служба публикации в Интернете» была недоступна,

  1. Перейдите в панель управления, перейдите к «Удаление программ», затем «Включение / выключение компонентов Windows».
  2. Найдите «Информационные службы Интернета»
  3. Установите флажок и нажмите «ОК».
  4. Перезагрузите, затем повторите второй подход (services.msc)

Спасибо, но ответ уже есть. Может быть, это поможет кому-то ese (:
Феликс Дежарден

Ваш ответ мне не помог, я нашел свое решение. В любом случае спасибо :)
Fazal

1
Гениально! Это просто Skype заблокировал Apache! Моя любимая часть процесса: после отключения портов Skype 80 и 443 мне пришлось выйти из Skype. Появилось предупреждение (перефразировано): «Если вы выйдете из Skype, вы не сможете им пользоваться». Ну да!
CJ Dennis

14

Вы можете изменить порт Apache:

  1. Перейдите в C: \ xampp \ apache \ conf \ httpd.
  2. Найдите комбинацией Ctrl + F строку #Listen 12.34.56.78:80 и измените 80 на любое, например 81
  3. То же самое с Listen 80 сменить на 81
  4. То же самое и с ServerName localhost: 80 измените на 81.
  5. Перейдите в C: \ xampp \ apache \ conf \ extra \ httpd-vhosts и измените 80 на 81

NameVirtualHost *: 80 здесь

VirtualHost *: 80 и здесь (два раза)

  1. Перезагрузите Apache

Чтобы войти на свою веб-страницу, введите: http: // localhost: 81 / index.html.


Я порекомендую этот
niz_sh 03

5
  1. Нажмите Windows+ Rи введите regedit.

  2. Идти к

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
    

    Измените значение Startна 4, что означает отключено.

  3. Перезагрузите компьютер.


1
Ноябрьское обновление Windows 10 вызвало мою проблему - все работало раньше на более старой версии Win 10. У меня не было запущено W3svc или Skype. Это решение помогло! Спасибо @Do Nhu Vy!
Джим М.

5

Я исправил эту проблему и со своей, но мне пришлось изменить пару вещей. Мне нужно, чтобы на моем компьютере с Windows 10 я сохранял среду разработки C # и Visual Studio, поэтому я не хотел возиться с какими-либо службами. Все, что мне нужно было сделать, это загрузить последнюю версию XAMPP и изменить порты прослушивания на 80 и 443. Они были расположены в двух файлах:

C:\xampp\apache\conf\httpd.conf

Listen 122
ServerName localhost:122

C:\xampp\apache\conf\extra\httpd-ssl.conf

Listen 444

Изменение вышеуказанного порта с 80 на 122 и с 443 на 444 позволило мне запустить Apache и обслуживать страницы, сохранив при этом все остальное для моей разработки ASP.NET . Надеюсь, это поможет кому-то там. В конце концов, это очень простое решение.

Укажите в браузере: http://localhost:122


Я считаю, что это самый простой и легкий способ. Спасибо огромное!
Диптангсу Госвами,

+1, потому что отключение .NET Services для меня определенно не вариант. Конечно, я хочу запускать IIS и Apache одновременно!
Алан

4

У меня такая же проблема, но предыдущие решения заставили нас изменить порт вместо получения точного решения. Я искал порты простых протоколов HTTP и HTTPS и нашел.

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

Поэтому после смены номера порта он заработал. Но вместо изменения порта на сервере XAMPP я использовал следующие методы, и они мне подходят.

Вот следующий шаг, который я сделал во время этого исправления.

  1. Ошибка, которую я получил в приложении XAMPP Server.

    Ошибка сервера XAMPP

  2. В верхнем углу есть кнопка Netstat . Это очень полезно для поиска работающих портов в системе.

    Кнопка Netstat

  3. Это приложение Netstat, в котором я обнаружил, что приложение уже запущено и использует номер порта 443. В моем случае это был vmware-hostd.exe . У вас может быть другое приложение. Попробуйте найти порт 80 (HTTP) или порт 443 (HTTPS).

    Приложение Netstat открыто

  4. Я просто открыл диспетчер задач Windows , выбрал это приложение vmware-hostd.exe и завершил процесс, нажав кнопку « Завершить процесс» . Я убил тот процесс, который использовал порт 443. И это приложение на данный момент не было нужно.

    Открыл диспетчер задач и убей это приложение

  5. После закрытия приложения в диспетчере задач Windows Apache теперь доступен на данный момент. Вот доказательство.

    Apache работает


ПРИМЕЧАНИЕ: * Если вы нашли какое-либо приложение, которое использует порты HTTP или HTTPS, означает порт 80 или порт 443, и приложение не важно или не жизненно важно, тогда просто завершите процесс этого приложения.

В противном случае нет необходимости выполнять эти шаги. Затем вам нужно подумать об изменении порта вашего приложения XAMPP, как указано в предыдущих ответах. *


4

Я пробовал все, что указано в ответах здесь, но ни один из них не работал.

Затем все, что я сделал, - это перезапустить XAMPP с правами администратора:

Меню "Пуск" - щелкните правой кнопкой мыши XAMPP - выберите "Запуск от имени администратора".

Это сработало. Это так просто.

Я удалил службы IIS, остановил службы WWW, изменил порты на 80, заблокировал все соединения apache и mysql из брандмауэра Windows 10, но да, он все еще работает!


3

Похоже, есть много вариантов. Ответ зависит от вашей установки Windows. Вот мой опыт, когда у меня возникла такая же проблема при новой установке Windows 10, и я решил проблему с помощью следующего шага:

  1. Установить распространяемый компонент Visual C ++
  2. Откройте XAMPP и выберите настроить в службе Apache.
  3. Измените порт 80 на 9000 или 81 или что угодно в файле httpd.conf в строкеListen 80
  4. Измените порт на httpd-ssl.conf и измените Listen 443наListen 441
  5. Перезапустите XAMPP и запустите службу Apache. Меня устраивает.

Примечание . Я использую XAMPP версии 5.6.15 и XAMPP Control Panel версии 3.2.2.


2
Хорошая уловка - убедитесь, что порты http и https не конфликтуют,
Аарон Худон

2

После игры все, что вам нужно сделать, это изменить две строки в файле httpd.conf :

Измените "Слушать 80" на "Слушать 122" (или что угодно еще)

и

"ServerName Localhost: 80" на "Localhost: 122" (или порт, который вы изменили выше)

Тогда все должно заработать: P


1
  • Перейдите в меню "Пуск" и введите " Включить или отключить функции Windows".
  • Снимите флажок Internet Information Services
  • Нажмите OK

1

В моем случае это был простой случай удаления IIS, потому что Windows 10 поставляется с предустановленным IIS (Internet Information Service), что конфликтует с XAMPP, потому что оба эти сервера пытаются использовать порт 80. Если вы не хотите использовать IIS и продолжай использовать XAMPP

  1. Заходим в запуск / поиск в Windows 10
  2. Искать "дополнительные функции"
  3. В этом списке снимите флажок Internet Information Service (IIS)

Затем перезапустите .


1

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

Моя ошибка заключалась в том, что я оставил пробел между localhost: и портом.


Что такое "запуск apache_start"? Например, отсутствует слово?
Питер Мортенсен

Копирование и вставка работает лучше, чем набор текста (если, конечно, не используется GNOME - избегайте GNOME любой ценой).
Питер Мортенсен

1

Служба публикации в Интернете была не единственной, кто отвечал за это в моем случае.

У меня установлен IIS, поэтому мне пришлось остановить всю службу HTTP.

Это команды, которые я выполнил в CMD (как администратор):

net stop W3SVC
net stop http

1

Если вы установили SQL Server , некоторые из его служб могут блокировать порт, который нужен XAMPP. Я решил свою проблему, отключив службы отчетов SQL Server, и теперь Apache запускается без проблем.

Просто откройте services.msc, прокрутите вниз и найдите SQL Server Reporting Services . Щелкните его правой кнопкой мыши и щелкните Stop.


0

Собственно, по умолчанию установлен IIS (Microsoft, .NET и т.д.).

  • Перейти в панель управления
  • Включение и отключение компонентов Windows ...
  • В разделе (IIS) Internet Information Services снимите отметку с всемирных веб-служб (WWWS).
  • Щелкните ОК.

Это могло быть постоянным решением. :)


0

Этот совет был замечательным. У меня была та же проблема, но мое решение было другим, потому что я был настолько глуп, что переименовал каталог, в котором находился XAMPP, и, поскольку я установил много других программ, я не мог переименовать его обратно.

В моем случае исходный каталог C: \ Programs \ Xampp был переименован в C: \ PROGRAMS_ \ Xampp, и это было ошибкой.

Решением было найти все ссылки на C: \ Programs и переименовать их в C: \ PROGRAMS_ в каталоге XAMPP, потому что по какой-то причине во время установки он записывает абсолютные пути, а не относительные. Конечно, в реестре тоже есть ссылки.


Это кажется очень специфическим случаем и не соответствует сценарию вопроса.
дакаб

Да, я согласен, но я думаю, что это может помочь кому-то, потому что я столкнулся с той же ситуацией (был свежий windodw 10), и ошибка была такой же, так что, возможно, это не совсем тот же сценарий, но я думаю, что кто-то colud найдет это полезным .
Mayk

0

Просто нужно сделать порт 80 доступным для вашей службы Apache. Я решил проблему следующим образом:

  1. В Windows 10 щелкните правой кнопкой мыши кнопку « Пуск» и выберите « Выполнить».
  2. Введите services.msc и щелкнитеOK
  3. Найдите и щелкните правой кнопкой мыши службу публикации в Интернете
  4. Выбрать свойства
  5. Измените значение типа запуска на автоматический (отложенный запуск)
  6. Перезагрузите компьютер.

Вот и все. Все вернулось в норму.



0

Я пробовал все вышеперечисленные решения. Но никак не работало.

Наконец, я просто удалил XAMPP и снова установил его . Тогда это сработало для меня.

Теперь я могу запустить сервер на любом порту (включая 80).


0

Шаги:

  • Откройте панель управления XAMMP.
  • Откройте Apache Config и выберите файл конфигурации Apache - xammp-.
  • Найдите "Порт 443", а затем измените его на другой порт, скажем 4433
  • Затем перезапустите.

0

Проверьте, работает ли ваша установка PHP.

Проверьте, какой файл php.ini вы используете в конфигурации Apache, и используйте его для запуска php.exe ...


0

Возможно, вы только что обновили Windows до версии 1903 (сборка ОС: 18362.239) или изменили пароли пользователей. Несмотря на то, что я устранил все конфликты портов , я продолжал получать сообщения, описанные OP в самом начале этого сообщения.

В конце концов я вылечил это обновлением до XAMPP до 7.3.7. (При принудительной переустановке вы также можете выполнить обновление одновременно!)

Но проблема возникла снова, когда я снова пошел менять пароль пользователя root.

Сообщения об ошибках консоли маскировали факт повреждения таблицы mysql.user .

Проверьте файл mysql_error.log . Если вы видите фатальную ошибку: не удается открыть и заблокировать таблицы привилегий: индекс для таблицы «пользователь» поврежден; попробуйте отремонтировать его , затем посмотрите на это .



0

введите описание изображения здесь

Измените номер порта, доступный в вашей системе, следующими способами

1. Сначала откройте файл Apache «httpd.conf»:

#Listen 12.34.56.78:80
Listen 80
ServerName localhost:80

к

#Listen 12.34.56.78:8080
Listen 8080
ServerName localhost:8080

2. Откройте httpd-ssl.conf:

Listen 443
<VirtualHost _default_:443>

к

Listen 441
<VirtualHost _default_:441>

3. Следуйте трюку. Теперь «запустите» Apache, и если все пойдет хорошо, ваш сервер Apache должен запуститься.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.