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


84

Я встановив програму Windows 10 Insider. Все працює, крім Apache. Коли я намагаюся його запустити, там пише, що порт 80 заблокований. Чи є спосіб його розблокувати або сказати Apache використовувати інший порт замість цього?

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


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

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


Відповіді:


208

У мене була та сама проблема у Windows 10, IIS / 10.0 використовував порт 80

Щоб вирішити це:

  • знайти послугу "W3SVC"
  • вимкніть його або встановіть на "вручну"

Французька назва: " Служба публікації в Інтернеті "

Англійська назва: " Видавнича служба Всесвітньої павутини "

німецька назва: "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 Server (xampp) не працює у Windows 10 (порт 80)


2
Чудово ... Проблема з Windows 10 за замовчуванням
user3658423

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

3
Інші можуть знайти відображуване ім’я, зателефонувавшиsc getdisplayname W3SVC
Хонза Кухарш

Чи є якась причина для W3SVC працювати на звичайному комп’ютері, який не працює як веб-сервер?
DaedalusAlpha

Чи не було б краще вилучити Службу видавництва World Wide Web зі списку встановлених компонентів Windows? Тоді немає необхідності вимикати послугу, оскільки вона більше не могла бути встановлена.
Арноуд Сієцема

31

Ця відповідь призначена як додаток до найвищо оціненої відповіді у цій темі від paaacman. Я просто хотів додати деяку корисну деталь для користувачів, як я, які також не знають, як обійти Windows 10.

Windows 10 автоматично запускає IIS (Інформаційні служби Інтернету, програмне забезпечення веб-сервера Microsoft) під час запуску на порту 80. Для того, щоб використовувати Apache Server на цьому порту, IIS потрібно зупинити.

У відповіді paaacman сервер IIS називається "W3SVC", або "Служба публікації у всесвітній мережі". Припускаю, це тому, що Windows 10 запускає IIS як послугу. Для того, щоб вимкнути його або змінити спосіб роботи служби, вам потрібно знати, де можна знайти "Послуги" у вашій системі.

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

Відкриється вікно панелі управління зі списком інструментів. Ви хочете " Послуги ". Двічі клацніть на ньому.

Відкриється інше вікно під назвою "Послуги". Знайдіть той, який називається « Служба видавничої справи у всесвітній мережі» . Деякі інші користувачі в цій темі перелічили, як це називається іншими мовами, якщо ваш список не англійською мовою.

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

Якщо ви хочете запобігти автоматичному запуску сервера IIS під час запуску Windows у майбутньому, клацніть правою кнопкою миші «Publishing Serivce World Wide Web» і виберіть « Властивості ». У вікні, що з’явиться, знайдіть спадне меню "Тип запуску" та встановіть його "Вручну". Натисніть "Застосувати" або "OK", щоб зберегти зміни. Ви повинні бути готові.


15

У Windows 10 IIS за замовчуванням працює на порту 80, який можна змінити:

Запустіть appwiz.cpl використання Turn Windows features on or offта встановіть консоль IIS Manager.

Увімкніть або вимкніть функції Windows -> Інформаційні служби Інтернету -> Інструменти веб-управління -> Консоль управління IIS

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

"З'єднання -> Сайти" -> "Прив'язки веб-сайтів за замовчуванням"

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

Напрямок порту за замовчуванням 8080

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


14

У мене була точно така ж проблема, і я вирішив її, запустивши команду folowing з командного рядка як адміністратор:

1) спочатку зупиніть послугу наступним чином

чиста зупинка http / y

2) потім вимкніть запуск (необов’язково)

sc config http start = вимкнено


Це найпростіший спосіб звільнити порт 80. Я використовую це для бродячої машини.
Mārtiņš Briedis

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

Після швидкого гуглювання я знаходжу це посилання 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" як у "Слухати 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

1

Я знаю, що, можливо, ця проблема була вирішена, але у мене була та сама проблема з іншим рішенням. Для цього я збираюся пояснити ще одне можливе рішення. У моєму випадку порт 80 був зайнятий Skype (pid: 25252), і я не знав, що це за програма.

Щоб побачити pid програми, яка використовує порт 80, ви можете скористатися командою, яку говорили інші люди раніше:

netstat -aon | findstr 0.0:80

Щоб убити процес за допомогою pid (у тому випадку, якщо ви не знаєте програму), вам потрібно відкрити CMD з дозволу адміністратора та використати наступну команду:

taskkill /pid 25252

Інші варіанти цієї команди тут .


Це не та сама проблема, оскільки ви можете вимкнути порт 80 у налаштуваннях Skype. Вам не потрібно вбивати скайп!
Aloso

Ти правий. Я бачив зараз варіант. Коли у мене була проблема, я її не бачив.
CGG

1

Я знаю, що це МОЖЕ не бути причиною вашої проблеми, але я витратив кілька годин, вдарившись головою об стіну, щоб вирішити цю проблему, і це моє рішення.

(під управлінням Windows 10 x32)

Так що я встановив XAMPP в глибоко вкладеної директорії і всі файли конф посилання на корінь \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-on

Детальніше про 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. Пошук слухати 80
  4. Змініть 80 на будь-який інший, як 9080
  5. Тепер перезапустіть XAMPP, спробуйте запустити сервер

Примітка. Я використовую версію сервера: 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 (або на вашому virtualhost), наприклад: localhost: 4900 / index.html


0

Цей виправлений node.js, який також не працює на порту 80 під Windows 10, я отримував listen eaccesпомилку. Пуск> Служби, знайдіть «Служба публікації в Інтернеті» та вимкніть її, точно так, як описав paaacman.


0

У мене була та сама проблема, і жодне з наведених вище рішень не працювало для мене.

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

У своєму випадку я виявив, що під час роботи робочої станції VMWare у мене був порт 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 зробив це неправильно, прослуховуючи ВСІ адреси, а не ВНІШНІ адреси, унеможливлюючи прослуховування лише на localhost.
Earth Engine

-1

Спочатку відкрийте regedit запустити як адміністратор див. Зображення відкрити HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentCurrentControlSet \ Services \ HTTP відкрити Пуск, змінити значення з 3 на 4 див. Зображення, потім перезавантажити комп'ютер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.