Apache Server (xampp) не работает в Windows 10 (порт 80)
Я установил программу Windows 10 Insider. Все работает, кроме Apache. Когда я пытаюсь запустить его, он говорит, что порт 80 заблокирован. Есть ли способ разблокировать его или сказать Apache использовать другой порт вместо этого?
Я использовал Windows 7 раньше. У меня были проблемы с портом 80 со скайпом, но я отключил его.
18 ответов
У меня была такая же проблема на Windows 10, IIS / 10.0 использовал порт 80
Чтобы решить это:
- найти сервис "W3SVC"
- отключите его или установите его в "ручной"
Французское название: "Сервис де публикации World Wide Web"
Английское название: "World Wide Web Publishing Service"
немецкое имя: "WWW-Publishingdienst" - спасибо @fiffy
Польское имя: "Usługa publikowania w sieci WWW" - спасибо @KrzysDan
Русское имя "Служба веб-публикаций" - спасибо @Kreozot
Итальянское имя "Servizio Pubblicazione sul Web" - спасибо @Claudio-Venturini
Испанское имя "Servicio de publicación World Wide Web" - спасибо @Daniel-Santarriaga
Португальское (Бразилия) имя "Serviço de publicação da World Wide Web" - спасибо @thiago-born
Альтернативы:
- Другое решение - отключить сервис через консоль администратора с помощью команды.
sc stop W3SVC
- см. вики сообщества от Tobias Hochgürtel Apache Server (xampp) не работает в Windows 10 (порт 80)
Изменить 07 октября 2015: Подробнее см. Ответ Мэтью Стампфи. Apache Server (xampp) не работает в Windows 10 (порт 80)
Этот ответ предназначен как дополнение к ответу с наибольшим рейтингом в этой теме от paaacman. Я просто хотел добавить некоторые полезные подробности для таких пользователей, как я, которые также не знают, как работать с Windows 10.
Windows 10 автоматически запускает IIS (службы IIS, программное обеспечение веб-сервера Microsoft) во время запуска на порту 80. Чтобы использовать Apache Server на этом порту, IIS необходимо остановить.
В ответе paaacman сервер IIS называется "W3SVC" или "Служба публикации в Интернете". Я полагаю, это потому, что Windows 10 запускает IIS как службу. Чтобы отключить его или изменить способ работы службы, вам необходимо знать, где найти "Службы" в вашей системе.
Я нашел самый простой способ - нажать кнопку поиска рядом с кнопкой меню "Пуск" на панели задач Windows 10 и ввести "Администрирование". Вы можете нажать кнопку возврата или щелкнуть ссылку "Инструменты администрирования", которую Windows найдет для вас.
Откроется окно панели управления со списком инструментов. Тот, который вы хотите, это " Услуги ". Дважды щелкните по нему.
Откроется другое окно под названием "Услуги". Найдите один из них под названием " Служба публикации в Интернете ". Некоторые другие пользователи в этой теме перечислили, как это называется на других языках, если ваш список не на английском языке.
Если вы хотите отключить сервер IIS только для этого сеанса Windows, но хотите, чтобы он снова запускался автоматически при следующем запуске Windows, щелкните правой кнопкой мыши "Служба публикации в Интернете" и выберите " Остановить ". Сервер остановится, и порт 80 будет освобожден для Apache (или для чего-либо еще, для чего вы хотите его использовать).
Если вы хотите запретить автоматический запуск сервера IIS при запуске Windows в будущем, щелкните правой кнопкой мыши "World Wide Web Publishing Serivce" и выберите " Свойства ". В появившемся окне найдите раскрывающийся список "Тип запуска" и установите для него "Вручную". Нажмите "Применить" или "ОК", чтобы сохранить изменения. Вы должны быть все готово.
В Windows 10 IIS по умолчанию работает на порте 80, который можно изменить:
Бежать appwiz.cpl
использование Turn Windows features on or off
и установите консоль диспетчера IIS.
Информационные службы Интернета -> Инструменты управления веб- -> Консоль управления IIS>
Бежать InetMgr.exe
и перейдите в "Соединения -> Сайты" и откройте правой кнопкой мыши контекстное меню на элементе по умолчанию "Веб-сайт по умолчанию". В контекстном меню выберите "Привязки", чтобы открыть адрес сервера и конфигурацию порта.
У меня была точно такая же проблема, и я решил ее, выполнив следующую команду из командной строки как администратор:
1) сначала остановите сервис со следующими
чистый стоп http / y
2) затем отключить запуск (необязательно)
sc config http start = отключено
Введите в командной строке
netstat -aon | findstr :80
Вы увидите PID процесса, который использует порт 80. Затем попробуйте настроить это приложение для использования другого порта или просто убить его
ОБНОВЛЕНИЕ: я напишу свой комментарий здесь, чтобы быть более ясным: по этой ссылке, в Windows 10, это служба MsDepSvc, которая занимает порт 80. Это для IIS или Web Matrix 2. Если вы не будете использовать IIS или Web Matrix 2 для любой веб-разработки, вы можете попробовать закрыть сервис
Что касается второй части вашего вопроса, вы можете указать Apache использовать другой порт, отредактировав [Apache folder]/conf/httpd.conf. У него есть строка "Listen 80". Измените 80 на любой свободный порт и перезагрузите Apache
Возможно, вам также придется прекратить работу служб отчетов SQL Server.
В моем случае мне нужны как XAMPP для разработки Apache, так и IIS Express для разработки.Net 2013; поэтому я делаю следующее:
В командной строке, напечатанной services.msc, она загружает "Службы Windows", где я расположил "Службу публикации в Интернете", и останавливаю ее. World Wide Web Publishing Service СТОП
Я запускаю панель управления XAMPP, нажимаю "Config", затем выбираю "Apache httpd.conf". Ищите "80", затем измените его на "8080" в "Listen 80" и "ServerName localhost:80". Сохраните файл из "Сохранить как" и выберите "Все файлы", чтобы не сохранять его как текст из "Сохранить как тип", а "Кодировка" должна быть "UTF-8". Apache httpd.conf
Выйдите из панели управления XAMPP, затем запустите ее снова и из "Action" запустите Apache & MySQL. Теперь вы увидите, что порт изменился. Как вы теперь знаете, вы должны добраться до вашего сервера Apache, используя "localhost:8080" вместо "localhost". Также у вас есть и Apache, и IIS Express, работающие на одном компьютере с Windows 10.
Я читал пост, где писатель предложил использовать порт "9080", но он не работал для меня.
Проблема возникает всякий раз, когда процесс использует порт 80.
Вы можете запустить Netstat, доступный в панели управления XAMPP, и проверить, какой процесс использует порт 80 в вашей системе.
Для меня это был не IIS, а Skype.
Выключите этот процесс / приложение и затем запустите службы Apache.
Я думаю, что просто изменить свой порт сервера Apache
- Перейдите в C:\xampplite\apache\conf
- Откройте файлы httpd.conf
- Искать Слушай 80
- Изменить 80 на любой другой, как 9080
- Теперь перезагрузите XAMPP, попробуйте запустить сервер
NB Я использую версию сервера: 5.1.41 с Windows 10
Я знаю, что, возможно, эта проблема была решена, но у меня была та же проблема с другим решением. Для этого я собираюсь объяснить другое возможное решение. В моем случае порт 80 был занят Skype (pid: 25252), и я не знал, что это за программа.
Чтобы увидеть pid программы, использующий порт 80, вы можете использовать команду, которую другие люди говорили ранее:
netstat -aon | findstr 0.0:80
Чтобы завершить процесс с помощью pid (в случае, если вы не знаете программу), вам нужно открыть CMD с правами администратора и использовать следующую команду:
taskkill /pid 25252
Другие варианты с этой командой здесь.
Если вам нужно запустить 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
Я знаю, что это МОЖЕТ не быть причиной вашей проблемы, но я потратил несколько часов, стуча головой об стену, чтобы решить эту проблему, и это мое решение.
(работает под управлением Windows 10 x32)
Поэтому я установил XAMPP в глубоко вложенную директорию, и все файлы conf ссылаются на root\xampp\apache
тогда как мои файлы были some_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache
так что мои варианты были либо пройти и отредактировать все \xampp\apache
ссылки и указывать их в нужном месте, или, гораздо более простой вариант... переустановите XAMPP в корне, так что все ссылки указывают в правильном месте.
Немного раздражает, но я думаю, это то, что мы получаем, когда Mac и Windows пытаются дружить...
Надеюсь, это поможет некоторым из вас.
Хотя многие используют подход для остановки / отключения IIS, может быть полезно знать, что вы можете просто изменить порт XAMPP, на который уже дан ответ. Это маршрут, по которому я должен был идти, так как мне нужно оба бега.
Выключение "какого-то системного процесса" может быть непростым делом... вам лучше отредактировать [папку Apache]/conf/httpd.conf, как упомянуто @Sergey Maksimenko, и если вы хотите настроить виртуальный хост, используйте новый порт в [Apache папка]/conf/extra/httpd-vhosts.conf (я использовал 4900 вместо 80 и 4901 вместо 443 в [папке Apache]/conf/httpd-ssl.conf). И не забудьте использовать порт при доступе к странице на локальном хосте (или вашем виртуальном хосте), например: localhost:4900/index.html
Этот исправленный node.js не работает на порте 80 под Windows 10, я получаю listen eacces
ошибка. Пуск> Службы, найдите "Службу публикации в World Wide Web" и отключите ее, точно так же, как описано в paaacman.
У меня была та же самая проблема, и ни одно из вышеупомянутых решений не работало для меня.
Apache использует оба порта 80 и 443 (для HTTPS), и оба должны быть готовы для успешного запуска Apache. Только 80 порта может быть недостаточно.
В моем случае я обнаружил, что при работе с VMWare Workstation у меня был порт 443, используемый для общего доступа VMware.
Вы должны отключить общий доступ в основных настройках VMware или изменить порт в этом разделе.
После этого, если у вас нет другого сервера, подключенного к порту 80 (см. Выше), вы сможете запускать Apache или NGinx на XAMPP или любом другом приложении стека Windows.
Я надеюсь, что это поможет другим пользователям.
Помимо вполне очевидной причины (IIS), есть еще одна причина, которая достаточно распространена для этой проблемы. Стоит процитировать этот вопрос и его ответ здесь:
http://stackru.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443
Итак, если у вас установлен Skype на компьютере, обязательно проверьте это. Решение цитируется здесь:
Чтобы отключить и отключить использование Skype и прослушивание порта 80 и порта 443, откройте окно Skype, затем щелкните меню "Сервис" и выберите "Параметры". Нажмите на вкладку "Дополнительно" и перейдите на вкладку "Подключение". Снимите или снимите флажок Использовать порты 80 и 443 в качестве альтернативы для входящих соединений. Нажмите кнопку Сохранить, а затем перезапустите Skype, чтобы изменения вступили в силу.
Сначала откройте regedit, запустите от имени администратора, см. Образ open HKEY_LOCAL_MACHINE\SYSTEM\CurrentCurrentControlSet\Services\HTTP open Запустите, измените значение с 3 на 4, см. Изображение, затем перезагрузите компьютер