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


84

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

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


PID равен 4. Процесс - это система (ядро NT и система)
Алосо

Остерегайтесь марки вашего компьютера: обнаружил, что на моем компьютере есть специальная служба, которая блокирует порт. Мне пришлось отключать все службы одну за другой, чтобы наконец понять это ...
Жан-Франсуа Савар,


Ответы:


208

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

Чтобы решить эту проблему:

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

Французское название: « Сервис публикации во всемирной паутине ».

Английское название: " 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


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


Изменить 07 октября 2015: для получения дополнительной информации см. Ответ Мэтью Стумфи. Сервер Apache (xampp) не работает в Windows 10 (порт 80)


2
Потрясающе ... Это проблема с Windows 10 по умолчанию
user3658423,

3
Службу можно отключить при запуске, открыв Administrative Toolsи выбрав Services. Появится окно с названием Services. Затем найдите World Wide Web Publishing Services, щелкните правой кнопкой мыши и выберите Properties. Меняем Startup Typeна Manualи нажимаемApply
zgr024

3
Другие могут узнать отображаемое имя, позвонивsc getdisplayname W3SVC
Honza Kuchař

Есть ли вообще причина, по которой W3SVC запускается на обычном компьютере, который не работает как веб-сервер?
DaedalusAlpha

Не лучше ли удалить службу публикации в Интернете из списка установленных компонентов Windows? Тогда нет необходимости отключать службу, поскольку она больше не может быть установлена.
Arnoud Sietsema

31

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

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

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

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

Откроется окно панели управления со списком инструментов. Вам нужны « Услуги ». Дважды щелкните по нему.

Еще одно окно откроется под названием «Услуги». Найдите тот, который называется « Служба публикации в Интернете ». Некоторые другие пользователи в этой ветке перечислили, как это называется на других языках, если ваш список не на английском.

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

Если вы хотите, чтобы сервер IIS не запускался автоматически при запуске Windows в будущем, щелкните правой кнопкой мыши «Служба публикации в Интернете» и выберите « Свойства ». В появившемся окне найдите раскрывающийся список «Тип запуска» и выберите «Вручную». Нажмите «Применить» или «ОК», чтобы сохранить изменения. У вас должно быть все готово.


15

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

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

Включение или отключение функций Windows -> Информационные службы Интернета -> Инструменты веб-управления -> Консоль управления IIS

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

«Подключения -> Сайты» -> «Привязки веб-сайтов по умолчанию»

Адрес сервера и конфигурация порта

Изменение порта по умолчанию на 8080

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


14

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

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

чистая остановка http / y

2) затем отключите автозагрузку (необязательно)

sc config http start = отключено


Это самый простой способ освободить порт 80. Я использую его для бродячей машины.
Мартиньш Бриедис

9

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

netstat -aon | findstr :80

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

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

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


Это Система. Я не могу убить это, правда?
Aloso

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

Извините, но у меня нет этого процесса.
Aloso

8

Вам также может потребоваться завершить работу служб отчетов SQL Server.


5

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

  1. В командной строке, набранной services.msc, загружаются «Службы Windows», где я обнаружил «Службу публикации в Интернете», и останавливается. Служба публикации в Интернете СТОП

  2. Я запускаю панель управления XAMPP, нажимаю «Конфигурация», затем выбираю «Apache httpd.conf». Найдите «80», затем измените его на «8080» в «Listen 80» и «ServerName localhost: 80». Сохраните файл из «Сохранить как» и выберите «Все файлы», чтобы не сохранять его как текст из «Сохранить как тип», а «Кодировка» должна быть «UTF-8». Apache httpd.conf

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

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


3

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

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

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

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


Это просто похоже на дубликат ряда предыдущих ответов, может быть, лучше просто в качестве комментария, что Skype был для вас проблемным процессом.
blm

«Это был скайп» звучит для меня как ответ! Возможно, это был не ответ, который решил эту проблему для OP, но это было для меня, и я благодарен, что это был ответ, а не комментарий, или, возможно, я его не видел.
arichards 09

1

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

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

netstat -aon | findstr 0.0:80

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

taskkill /pid 25252

Другие варианты этой команды находятся здесь .


Это не та проблема, потому что порт 80 можно отключить в настройках скайпа. Убивать скайп не нужно!
Алосо

Ты прав. Теперь я увидел вариант. Когда у меня была проблема, я ее не видел.
CGG

1

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

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

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

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

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

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


1

Если вам нужно запустить 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-адреса-на-сервере-при установке-iis-7-0-на

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


1

Я думаю, что просто изменить порт вашего сервера Apache

  1. Перейдите в C: \ xampplite \ apache \ conf
  2. Откройте файлы httpd.conf
  3. Искать Listen 80
  4. Поменять 80 на любой другой, например 9080
  5. Теперь перезапуск XAMPP попробуйте запустить сервер

NB Я использую версию сервера: 5.1.41 с windows 10


0

Завершение «некоторого системного процесса» может быть непростым ... вам лучше отредактировать [папку 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


0

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


0

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

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

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

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

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

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


0

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


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, чтобы изменения вступили в силу.


Все говорят выключить и отключить Skype, но какое влияние это окажет на Skype? Нужно ли нам менять какие-либо настройки конфигурации в Skype?
luisdev

@luisdev Просто выполните действия, описанные в приведенной выше цитате. В нем рассказывается, как изменить настройки конфигурации в Skype.
Earth Engine

Хорошо, я знаю, как изменить настройки конфигурации в Skype, но какое влияние изменение настроек Skype оказывает на функциональность Skype? Повлияет ли это на мою способность совершать или принимать звонки в Skype? Если Skype больше не прослушивает порты 80 и 443, смогут ли люди мне звонить?
luisdev

1
@luisdev У меня нет проблем с отключением этих портов в Skype. Кажется, это полезно только тогда, когда вы находитесь за некоторыми конкретными брандмауэрами. Так что, если это не сработает, вам придется снова включить его. К сожалению, Skype сделал это неправильно: он прослушивает ВСЕ адреса, а не только ВНЕШНИЕ адреса, что делает невозможным прослушивание только на локальном хосте.
Earth Engine

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