Apache Server (xampp) не работает в Windows 10 (порт 80)

72

Я установил инсайдерскую программу Windows 10. Все работает, кроме Apache. Когда я пытаюсь запустить его, он говорит, что порт 80 заблокирован. Есть ли способ разблокировать его или сообщить Apache вместо другого порта?

Я использовал Windows 7 раньше. У меня были проблемы с портом 80 со скайпом, но я отключил его.

  • 0
    PID равен 4. Процесс является системным (NT Kernel & System)
  • 0
    Остерегайтесь марки вашего компьютера: обнаружил, что на моем компьютере есть специальная служба, которая блокирует порт. Мне пришлось отключить все сервисы один за другим, чтобы наконец выяснить это ...
Показать ещё 1 комментарий
Теги:
connection
webserver

17 ответов

180
Лучший ответ

У меня была та же проблема в Windows 10, IIS/10.0 использовал порт 80

Чтобы решить это:

  • найти услугу "W3SVC"
  • отключите его или установите в "manual"

Французское название: "Служба публикации Всемирной паутины"

Английское название: "Служба публикации World Wide Web"

Немецкое имя: "WWW-Publishingdienst" - спасибо @fiffy

Польское название: "Usługa publikowania w sieci WWW" - спасибо @KrzysDan

Русское название "Служба веб-публикаций" - спасибо @Kreozot

Итальянское название "Servizio Pubblicazione sul Web" - благодаря @Claudio-Venturini

Español name - "Служба всемирной паутины" - спасибо @Daniel-Santarriaga

Португальское (Бразилия) название - "Serviço de publicação da World Wide Web" - благодаря @thiago-born


Альтернативы:


Редактировать 07 октябрь 2015: Подробнее см. ответ Matthew Stumphy Apache Server (xampp) не запускается в Windows 10 (порт 80)

  • 0
    Это наконец решило это. Спасибо! Мне не очень понравилось использовать другой порт :)
  • 6
    немецкое имя "WWW-Publishingdienst"
Показать ещё 14 комментариев
30

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

Windows 10 запускает IIS (Internet Information Services, программное обеспечение веб-сервера Microsoft) автоматически во время запуска в порту 80. Чтобы использовать Apache Server в этом порту, IIS необходимо остановить.

Ответ paaacman ссылается на сервер IIS как "W3SVC" или "Всемирная служба публикации в Интернете". Я полагаю, что, поскольку Windows 10 запускает IIS в качестве службы. Чтобы отключить его или изменить способ запуска службы, вам нужно знать, где найти "Сервисы" в вашей системе.

Я нашел самый простой способ щелкнуть по кнопке поиска рядом с кнопкой меню "Пуск" на панели задач Windows 10 и введите "Администрирование" . Вы можете нажать кнопку "вернуться" или нажать ссылку "Администрирование", которую Windows найдет для вас.

Откроется окно панели управления со списком инструментов. Тот, который вы хотите, - Услуги. " Дважды щелкните его.

Откроется другое окно под названием "Службы". Найдите имя с именем Служба публикации веб-сайтов World Wide Web. " Некоторые другие пользователи в этом потоке указали, что они вызывают на других языках, если ваш список отсутствует на английском языке.

Если вы хотите отключить IIS-сервер для этого сеанса Windows, но хотите, чтобы он автоматически запускался автоматически при следующем запуске Windows, щелкните правой кнопкой мыши "Служба публикации всемирной сети" и выберите " Стоп". Сервер остановится, и порт 80 будет освобожден для Apache (или того, что еще вы хотите использовать).

Если вы хотите, чтобы сервер IIS не запускался автоматически при запуске Windows в будущем, щелкните правой кнопкой мыши "World Wide Web Publishing Serivce" и выберите " Свойства". В появившемся окне найдите раскрывающийся список "Тип запуска" и установите его "Руководство". Нажмите "Применить" или "ОК", чтобы сохранить изменения. Вы должны быть установлены.

12

В Windows 10 IIS работает по порту 80 по умолчанию, который можно изменить:

Запустите appwiz.cpl используйте Turn Windows features on or off и установите консоль диспетчера IIS.

Изображение 6221

Запустите InetMgr.exe и перейдите к "Соединения → Сайты" и откройте правой кнопкой мыши в контекстном меню по умолчанию "Веб-сайт по умолчанию". В контекстном меню выберите "Привязки", чтобы открыть адрес сервера и конфигурацию порта.

Изображение 6222

Изображение 6223

Изображение 6224

https://technet.microsoft.com/library/hh831681.aspx#Site_Bingings

7

У меня была одна и та же проблема, и я решил, что она запускает следующую команду из командной строки в качестве администратора:

1) сначала остановите службу со следующими

net stop http/y

2), затем отключите запуск (необязательно)

sc config http start = disabled

  • 0
    Это самый простой способ освободить порт 80. Я использую это для бродячей машины.
7

Введите в командной строке

netstat -aon | findstr :80

Вы увидите PID процесса, который использует порт 80. Затем попробуйте настроить это приложение для использования другого порта или просто убить его

UPDATE: Я напишу свой комментарий здесь, чтобы быть более ясным: согласно эта ссылка, в Windows 10, это служба MsDepSvc, которая занимает порт 80. Это для IIS или веб-матрицы 2. Если вы не будете использовать IIS или Web Matrix 2 для любой веб-разработки, вы можете попытаться отключить службу

И для второй части вашего вопроса вы можете сказать Apache использовать другой порт, отредактировав [папку Apache]/conf/httpd.conf. Он имеет строку "Listen 80". Измените 80 на любой свободный порт, который вы хотите, и перезагрузите Apache

  • 0
    Это Система. Я не могу убить это, я могу?
  • 0
    После быстрого поиска в Google , я нахожу эту ссылку nextofwindows.com/… . «... у вас есть эти службы MsDepSvc, работающие в фоновом режиме, которые занимают порт 80. Быстрое исправление - остановка службы, если вы не планируете использовать IIS или Web Matrix 2 для какой-либо веб-разработки. И запускайте службы когда это понадобится, надеюсь, что это разрешит некоторые загадки, которые могут возникнуть при переключении между использованием Web Matrix и традиционной разработкой apache ".
Показать ещё 2 комментария
6

Возможно, вам также потребуется прекратить службы Reporting Services SQL Server.

5

В моем случае мне нужны как XAMPP для разработки Apache, так и IIS Express для разработки .Net 2013; поэтому я делаю следующее:

  • В командной строке, набранной services.msc, загружается "Служба Windows", где я размещен "Служба публикации всемирной сети" и останавливаю ее. Служба публикации World Wide Web STOP

  • Я запустил панель управления XAMPP, нажав "Config", затем выберите "Apache httpd.conf". Найдите "80", а затем измените это на "8080" как в "Прослушать 80", так и "Имя_источника localhost: 80". Сохраните файл из "Сохранить как" и выберите "Все файлы", чтобы сохранить его как текст из "Сохранить как тип", а "Кодировка" должна быть "UTF-8". Apache httpd.conf

  • Закройте панель управления XAMPP, затем запустите ее снова и от "Action" запустите Apache и MySQL. Теперь вы увидите, что порт изменился. Как вы знаете, теперь вам нужно добраться до вашего сервера Apache, используя "localhost: 8080" вместо "localhost". Также у вас есть и Apache, и IIS Express, работающие на том же ПК с Windows 10.

Я прочитал сообщение, где автор предложил использовать порт "9080", но это не сработало для меня.

  • 0
    Мой голос за "Всемирную паутинку". Большое спасибо!
3

Проблема возникает, когда процесс использует порт 80.

Вы можете запустить Netstat, который доступен в панели управления XAMPP и проверить, какой процесс использует порт 80 в вашей системе.

Для меня это не было IIS, но Skype.

Отключите этот процесс/приложение, а затем запустите службы Apache.

  • 0
    Это просто похоже на дубликаты ряда предыдущих ответов, может быть, лучше просто прокомментировать, что Skype был проблемным процессом для вас.
  • 0
    «Это был скайп» звучит как ответ для меня! Возможно, это не был ответ, который решил это для OP, но он сделал для меня, и я благодарен, что это был ответ, а не комментарий, или я, возможно, не видел его.
1

Я знаю, что это НЕ МОЖЕТ быть причиной вашей проблемы, но я потратил несколько часов, ударив головой о стену, чтобы решить эту проблему, и это мое решение.

(под управлением Windows 10 x32)

Итак, я установил XAMPP в глубоко вложенном каталоге, и все файлы conf ссылаются на root \xampp\apache, тогда как мои файлы были some_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache

поэтому мои варианты должны были либо пройти, либо отредактировать все ссылки \xampp\apache и указать их в нужном месте, ИЛИ, гораздо более простой вариант... переустановить XAMPP в корне, поэтому ссылки все указывают на нужное место.

Немного раздражает, но я думаю, что мы получаем, когда Mac и Windows пытаются дружить.

Надеюсь, это поможет некоторым из вас.

1

Я знаю, что, возможно, эта проблема была решена, но у меня была такая же проблема с другим решением. Для этого я собираюсь объяснить другое возможное решение. В моем случае порт 80 был занят Skype (pid: 25252), и я не знал, какая программа была.

Чтобы увидеть программу pid, использующую порт 80, вы можете использовать команду, о которой говорили другие люди:

netstat -aon | findstr 0.0:80

Чтобы убить процесс с помощью pid (в случае, если вы не знаете программу), вы должны открыть CMD с правами администратора и использовать следующую команду:

taskkill /pid 25252

Другие опции с этой командой: здесь.

  • 0
    Это не та же проблема, потому что вы можете отключить порт 80 в настройках скайпа. Вам не нужно убивать скайп!
  • 0
    Вы правы. Я видел теперь вариант. Когда у меня возникла проблема, я ее не видел.
0

Если вам нужно запустить IIS на порту 80/443, но на другом IP-адресе, вы можете использовать netsh http add iplisten xxx.xxx.xxx.xxx, как описано здесь: https://support.microsoft.com/en-us/help/954874/iis-binds-to-all-ip-addresses-on-a-server-when-you-install-iis-7-0-on

Более подробную информацию о netsh http add iplisten можно найти здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/cc307219.aspx

0

Помимо очевидной причины (IIS), есть еще одна причина, которая достаточно распространена для этой проблемы. Стоит процитировать этот вопрос и его ответ здесь:

http://stackoverflow.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443 

Итак, если у вас установлена ​​Skype на компьютере, обязательно проверьте это. Решение цитируется здесь:

Чтобы отключить и отключить использование и прослушивание Skype на порту 80 и порту 443, откройте окно Skype, затем щелкните меню "Сервис" и выберите "Параметры". Перейдите на вкладку "Дополнительно" и перейдите на вкладку "Подключение". Отключите или снимите флажок Использовать порт 80 и 443 в качестве альтернативы для входящих соединений. Нажмите кнопку "Сохранить", а затем перезапустите Skype, чтобы сделать изменение эффективным.

  • 0
    Все говорят, что выключите и отключите Skype, но какое влияние это оказывает на Skype? Нужно ли менять какие-либо настройки конфига в скайпе?
  • 0
    @luisdev Просто следуйте шагам, описанным в цитате выше. Там рассказывается, как изменить настройки конфига в скайпе.
Показать ещё 2 комментария
0

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

0

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

Apache использует оба порта 80 и 443 (для HTTPS), и оба должны быть готовы к использованию для успешного запуска Apache. Только порт 80 может быть недостаточно.

В моем случае я обнаружил, что при работе с рабочей станцией VMWare у меня был порт 443, используемый совместным использованием VMware.

Вам необходимо отключить общий доступ к основным настройкам VMware или изменить порт в этом разделе.

После этого, пока у вас нет другого сервера, подключенного к порту 80 (см. выше решения), вы должны иметь возможность запускать Apache или NGinx в XAMPP или любом другом приложении стека Windows.

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

0

Этот фиксированный node.js не работает на порту 80 под Windows 10, я получал ошибку listen eacces. Нажмите "Пуск" > "Службы", найдите "Служба публикации всемирной сети" и отключите его, как описано paaacman.

0

Отключение "некоторых системных процессов" может быть сложным... вам лучше отредактировать папку [Apache]/conf/httpd.conf, как указано @Sergey Maksimenko, и если вы хотите настроить виртуальный хост, используйте новый порт в папке [Apache]/conf/extra/httpd-vhosts.conf(я использовал 4900 вместо 80 и 4901 вместо 443 в папке Apache/conf/httpd-ssl.conf). И не забудьте использовать порт при доступе к странице на localhost (или вашем виртуальном хосте), например: localhost: 4900/index.html

-2

Во-первых, открыть regedit запуститься как администратор посмотреть изображение открыть HKEY_LOCAL_MACHINE\SYSTEM\CurrentCurrentControlSet\Services\HTTP открыть Пуск, изменить значение от 3 до 4 посмотреть изображение затем перезагрузите компьютер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню