XAMPP - Порт 80, який використовується "Неможливо відкрити процес" з PID 4! 12


182

Я два роки намагаюся розібратися, як виправити цю проблему. Я новачок у такій речі, тому я би вдячний, якби хтось міг сказати мені, як це виправити.

Я спробував видалити скайп, але це не спрацювало, я спробував вимкнути всесвітню веб-річ, IIS відключення нічого не здається.

12:51:22 PM  [Apache]   Problem detected!
12:51:22 PM  [Apache]   Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM  [Apache]   Apache WILL NOT start without the configured ports free!
12:51:22 PM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port

2
Немає уваги вводити його тут, не всі знають все про комп'ютери. Я просив допомоги, я переглянув її, і все, що кажуть люди, не працює.
user3097839

А, це має більше сенсу зараз. Спробуйте petri.co.il/quickly_find_local_open_ports.htm, щоб дізнатись, хто блокує порт 80
Pekka

9
@Pekka Я працюю з комп’ютерами з недавнього часу після того, як я перестала тріскати памперси, я також була програмістом вже майже десятиліття, і я гугла в цьому питанні і з вдячністю, тому що люди, які задають і відповідають на це питання, ВИКОРИСТОВУЮТЕ це сайт, я швидко знайшов відповідь. Хоча це, мабуть, має бути перенесено на суперкористувача, занепокоєння людей і змушення їх почувати себе дурними, коли вони задають законне питання, суперечить тому, як функціонує ця громада. Я пропоную вам знайти якусь іншу мету в житті.

3
Ну я не впевнений, де цей результат був отриманий під час вашого пошуку, але в моєму пошуку, завдяки цій темі, це було в списку. Ось саме до цього прагне бути ця громада, добре помітна і добре відома база знань для подібних матеріалів. Тож, хоча я ціную те, що ви говорите, насправді місія виконана завдяки ОП.

@TechnikEmpire, але те, що це питання зараз є високопоставленим результатом Google, є частиною проблеми, а не рішенням. Результат Google вже містив чудові відповіді до появи цього питання - я перевіряв, перш ніж робити коментар, завжди так роблю. Ці відповіді, можливо, тепер були відсунуті цим запитанням через величезний зв'язок SO з Google. Дивіться також дискусію тут: meta.stackexchange.com/questions/160565/…
Pekka

Відповіді:


354
  1. Відкрийте рядок CMD як адміністратор та виконайте таку команду:

    net stop was /y
    
  2. Відкрийте діалогове вікно Запуск (натисніть Win+ R) і введіть:services.msc

    Потім знайдіть Службу публікації World Wide Web (WWW-Publishing Service) та Службу агентів веб-розгортання та зупиніть їх. Ви також повинні їх відключити.

  3. Почніть Apache знову з XAMPP :)

Посилання на посилання: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/


15
Я не можу знайти всесвітню павутину
Мохаммад Кермані

4
Ще один спосіб отримати доступ до послуг - перейти доControl Panel > System and Security > Administrative tools > Services
Al.G.

28
"Служба звітності SQL Server" (MSSQLSERVER) "також використовує порт 80, і тому його слід зупинити, якщо на вашій машині буде встановлено сервер MS-SQL.
johnkarka

1
Будь-яка ідея, чому це може статися? Це Windows душею чи хтось зламає мою машину?
Стен Квін

5
Я вимкнув послуги видавництва World Wide Web і проблема була вирішена! Дякую.
Майк Страттон

139

Ще один дуже простий варіант - просто налаштувати Apache на прослуховування в інший порт. Це можна зробити, натиснувши кнопку «Налаштувати» в тому ж рядку, що і модуль «Apache», у спадному меню виберіть файл «httpd.conf», а потім змініть рядок «Прослухати 80» на «Прослухати 8080». Збережіть файл і закрийте його.

Тепер він уникає Port 80 і використовує Port 8080 замість цього без проблем. Єдине додаткове, що вам потрібно зробити, це переконатися, що ви розмістите його localhost:8080в браузері, щоб браузер знав, що він шукає порт 8080. В іншому випадку він за замовчуванням має порт 80 і не знайде ваш локальний сайт.

Це також потребує перезавантаження Apache, щоб зміни вступили в силу.

Вуаля! Виправлено.


Мені було піднято силу до Windows 10, і вона зламала встановлення XAMP, ця відповідь виправила це для мене. Дякую!
Ян

Це працювало і для мене, за винятком того, що я вийшов із усього, натиснув на xampp_start C:/xamppі змінив його на порт 81. 8080 не працював для мене.
користувач3553260

1
Я рекомендую ваше рішення. У моєму випадку мені потрібно розробити ASP .NET Application та PHP. Якщо я зупиняюся, World Wide Web Publishing Serviceя не можу працювати над моєю програмою ASP. Так що зміна порту є рішенням для мене. Дякую!
mihkov

3
У додатковому файлі httpd.conf вам також може знадобитися змінити порт з "Налаштувати"> "Налаштування сервісу та порту". На вкладці "Apache" змініть значення "Main Port" на новий порт
Ian A

42

У httpd.conf змініть наступні рядки та перезапустіть програму:

  • Listen 80 до Listen 8080
  • ServerName localhost:80 до ServerName localhost:8080

Після натискання кнопки "Пуск" програма все ще може сказати, що ви маєте помилку типу "Порт 80 у використанні" Неможливо відкрити процес "з PID ...", але він все одно буде працювати.

Якщо помилка включає "Порт 443, який використовується" Неможливо відкрити процес "з PID ...", потрібно змінити і httpd.conf, і httpd-ssl.conf.

У зміні httpd-ssl.conf:

  • Listen 443 до Listen 4433
  • <VirtualHost _default_:443> до <VirtualHost _default_:4433>
  • ServerName www.example.com:443 до ServerName www.example.com:4433

Мені в кінцевому підсумку довелося це зробити у своєму питанні. добро! що PID є системою.
mzimhle

42

Витягнуто з цієї статті :

  1. Перейдіть до команди run і введіть:

    netstat -o -n -a | findstr 0.0:80

Останнє число тут - ідентифікатор процесу, який використовує його. Це найчастіше IIS або інший веб-сервіс, який легко вирішувати, але кожен так часто (дуже часто, здавалося б, оглядається в google) виявляється PID 4 - що, за словами менеджера завдань Windows, є ядром NT і Система. Не дуже корисно, якщо це вбивство призведе до синього екрану смерті.

Те, що пришвидшив порт 80, не має нічого спільного з IIS або з Інтернетом, це SQL Server Reporting Services. Вимкніть все, що нагадує Послуги SQL Server, і запустіть Apache заново, не потрібно перезавантажувати.

Отже, проблеми з PID 4 при прослуховуванні порту 80? Перевірте свої служби SQL та вимкніть їх.

ОНОВЛЕННЯ - коментар від @sangam:

Працював на пострілі. У моєму випадку виявилося, що це служби звітування на сервері SQL. Я зупинив службу для всіх встановлених екземплярів, і вона працювала (без машинного перезавантаження).


7
Працював на пострілі. У моєму випадку виявилося, що це служби звітування на сервері SQL. Я зупинив службу для всіх встановлених екземплярів, і вона працювала (без машинного перезавантаження). Дякую.
сангам

1
Дуже корисно .. перед цим я змінив скайп-порт. і закриття служб sql мені дуже допомогло. Дякую багато
Waqar

2
нарешті, і в моєму випадку це був MSSQL
Том Сардуй

1
зупинення служб звітування SQL Server (MSSQLSERVER) працювало на мене
Порушення

1
Дякую, це була відповідь для мене.
балон

34

Тому я зіткнувся з тією ж проблемою, коли намагався запустити послугу Apache, і хотів би поділитися своїми рішеннями з вами. Ось кілька приміток щодо служб або програм, які можуть використовувати порт 80:

  1. Skype : Skype використовує порт 80/443 за замовчуванням. Ви можете змінити це Tools -> Options -> Advanced -> Connectionsі відключити прапорець "використовувати порт 80 та 443 для додаткових вхідних з'єднань" .

  2. IIS : IIS використовує порт 80 за замовчуванням, тому його потрібно вимкнути. Можна використовувати наступні дві команди: net stop w3svc, net stop iisadmin.

  3. Служба звітування SQL Server : Вам потрібно зупинити цю послугу, оскільки вона може зайняти порт 80, якщо IIS не працює. Перейдіть до місцевих служб і зупиніть це.

  4. Робоча станція VMware : Якщо ви працюєте з VMware Workstation, вам також потрібно зупинити сервер VMware Workstation - порт 443.

Ці параметри зі мною чудово працюють, і я можу запустити сервіс Apache без помилок.

Інший варіант - змінити порт прослуховування Apache з httpd.conf та встановити інший номер порту.

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


4
Моя була служба звітування SQL Server. Дякую!
Джаянга Каушаля

зупинка w3svc виправила мою проблему на Windows 10. Чудова відповідь.
Нокс

Як ви можете сказати, які служби використовують порт 80? (Windows 10)
Кріс Нільсен

Для мене це спрацювало "IIS: IIS використовує порт 80 за замовчуванням, тому вам потрібно його вимкнути. Ви можете використовувати такі дві команди: net stop w3svc, net stop iisadmin"
Singh

33

Можливо, вам доведеться зупинити "Службу агента веб-розгортання"

Натисніть Win + R і введіть services.msc

Клацніть правою кнопкою миші на службі агента веб-розгортання та виберіть "Зупинити"

Перезапустіть XAMPP

Також після подвійного клацання на "Агент веб-розгортання" ви можете запустити тип запуску в "Посібник", щоб "Сервіс веб-агента розгортання" не запускався автоматично


1
Чи може виникнути проблема, якщо вимкнути цю послугу?
Мухаммед Муазам

6
  1. Відкрийте диспетчер завдань (Ctrl + Alt + Delete).
  2. Перейдіть на вкладку "Деталі".
  3. Сортувати за номером PID
  4. Закінчити процес, який використовує номер PID, вказаний помилково.
  5. Перезапустіть XAMPP.

2
У моєму випадку саме PID4 використовує систему. Тому це може бути небезпечно.
Fusion

працював для мене, оскільки порт використовувався іншим моїм сервером. І врахуйте також коментар @ Fusion
Varshaan

6

Оскільки в цьому питанні є коментар @johnkarka, цей порт використовується і службою звітування SQL Server. Після припинення цього Apache почав чудово.

  1. Перейдіть до "Менеджера конфігурації SQL Server"
  2. Клацніть на "Служба звітування SQL Server" і зупиніть її

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

Найсмішніше, що IIS працював чудово в тій же конфігурації, але не Apache, довелося зупинити службу SQL Reporting, щоб змусити її працювати на порту за замовчуванням (80).


4

Те, що для мене працювало, - це зупинка Інтернет-інформаційних служб (IIS). Якщо ви використовуєте Windows 7, натисніть кнопку "Пуск" і в полі пошуку введіть "iis". Клацніть на "Менеджер інформаційних служб Інтернету (IIS)". Коли з'явиться вікно та припускаючи, що у вас не вибрано жодної піктограми, вам слід просто натиснути кнопку "Стоп" на правій панелі дій. Мій XAMPP Apache запустився прямо вгору. Сподіваюсь, це все спрацювало для вас


3

У Windows 10 звільнити порт 80:

у моєму випадку я відкриваю "Послуги" у "Пошук Windows" (у лівому куті на екрані), потім зупиняю всі сервіси SQL сервера MSSQLSERVER і вона працює знову


3

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

  1. Запустіть RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Змініть значення "start" на 4 (вимкнено)
  4. Перезавантажте комп'ютер

Не впевнений, як це впливає на інші послуги, але це вирішило проблему назавжди, і поки що я не бачив жодної проблеми.

Використання Windows 10.


2

Якщо у вас служба SQLServer Reporting Services працює локально, вам також потрібно зупинити це.


2

У мене була така ж проблема, але в моєму випадку Apache вже працює, і інструмент конфігурації XAMPP чомусь цього не показав. Це сталося після того, як я вперше запустив XAMPP після встановлення. Після збоїв інших екземплярів Apache все було нормально, а порти 80 і 443 знову були вільними.

Тому перш ніж вносити зміни до системи, переконайтеся, що щось настільки очевидне, як зазначено вище, не відбувається.


2

"Служба звітування SQL Server" викликала проблеми в моїй системі, після її зупинки Apache почав працювати нормально


2

У мене те саме питання, я вирішив проблему, просто відключений

"Служба BranchCache" в послугах.

Так чи інакше оновлення Windows, ця послуга запускається при запуску і використовує 80 портів. Перевіряючи через netstat, ви могли бачити, що система використовується, але ви не можете зрозуміти, яка служба використовується.


1
Відключення цієї послуги після кожного оновлення Windows 10 вирішує проблему
Метт

2

Після зміни основного порту 80 на 8080 вам потрібно оновити порт на панелі керування: введіть тут опис зображення Потім натисніть тут: введіть тут опис зображення І тут: введіть тут опис зображення Потім збережіть і перезапустіть.


1

Клацніть служби на панелі керування Xampp (назва файлу - послуги.msc, додаткова інформація).

Спочатку шукайте IIS, якщо він працює. Зупиніть його (зупиніть цю опцію послуги ліворуч після натискання на назву послуги.). Тоді це головна проблема, шукайте службу веб-розгортання (не точну назву, хоча вона має веб-розгортання на початку.) Припиніть і цю послугу. Спробуйте ще раз, і Apache повинен працювати.

Якщо ви користуєтесь Skype, вийдіть із цього теж, запустіть Apache, а потім запустіть Skype


Як правило, Skype підписує порт 80, але розумніший за XAMPP і використовуватиме інший порт, як тільки зрозуміє, що 80 належить Apache Server
ytpillai

1

У мене була така ж проблема, коли мені було встановлено MS WebMatrix, IIS Server був заблокований порт 80, на якому працює XAMPP. Я намагався знайти Службу видавництва World Wide Web і зупинити її, але не зміг знайти її у списку. Найкращий спосіб - це зміна порту.

Будь ласка, зверніться за цим
посиланням ref.


1

Для тих, хто має ASP.NET, C # або мають користувачів SQL Server, якщо ви використовуєте SQlServer АБО Visual Studio, можливо, зіткнеться ваш порт. Найпростіше, що ви можете зробити, це зробити в Command> servies.msc, а потім знайти службу звітування сервера SQl, а потім зупинити її.


0

якщо послуга http.sys

Вам потрібно змінити прив’язану IP-адресу для http.sys

netsh http add iplisten ipaddress = ::

Працює нормально без перезавантаження ОС.


0

Служба агента веб-розгортання розгорнута за допомогою WebMatrix і стала причиною моїх неприємностей. Він також може поширюватися з іншими програмами, встановленими за допомогою веб-платформи Microsoft Microsoft Installer.

Видалення це вирішило мої проблеми!


Ні, просто змініть порт, який слухає сервер.
ранго

0

Для мене зазвичай працює: - Вимкнення Skype - Вимкнення всіх процесів SQL Server, відображених у services.msc, - Вимкнення всесвітньої веб-публікації в services.msc


0

Зазвичай працює після зупинки сервера IIS та Skype


0

XAMPP - Порт 80, який використовується "Неможливо відкрити процес" з PID 4! 12

запустіть коментар у cmd-списку завдань

і знайдіть, яке ім'я PID та процес пов’язане з цим тепер відкритим менеджером завдань вікна

ви також можете відкрити менеджер завдань вікна за допомогою CTRL + ALT + DEL

тепер натисніть на вкладку процесу і знайдіть ім'я, яке використовує PID, і натисніть правою кнопкою миші на цьому і закінчіть процес

тепер знову перезапустіть xampp


0

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

Журнал червоної лінії Xampp:

12:53:54 PM  [Apache] Problem detected!
12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
...

Нарешті з’ясувалося, що у мене в PHP-коді був такий рядок коду:

$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

Метою цього фрагмента коду було отримати дзеркало результатів php звідкись із мого сервера. Але це просто застрягло в циклі, який отримує власний контент!

Я відремонтував код:

$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));

Потім я перезапустив apache ... і ця помилка apache більше не повторилася.

Тому іноді пошук ймовірних пунктів зупинки у вашому коді є хорошим підходом.


0

У Ubuntu за замовчуванням система не дозволить вам займати привілейовані порти [0 до 1023], крім того, щоб вказати порт як 80, вам потрібно запустити XAMP з sudo.


-1

Я пишу це, тому що я не можу знайти одяг для того ж питання. У моєму випадку PID склав 2484.

  1. ви повинні знайти процес або послугу з цим PID: відкрийте cmd (у Windows) і напишіть:

    tasklist
    
  2. Знайдіть свій PID у цьому списку та прочитайте назву процесу чи послуги.

  3. Тепер ви можете вбити це за допомогою диспетчера завдань

  4. знайти це ім'я у списку процесів

  5. натисніть Завершити процес.

Оце моя справа. Можливо, ви повинні відкрити services.msc і припинити обслуговування зі своїм PID.

На моєму комп’ютері xampp це працювало чудово :)

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