XAMPP - Порт 80 используется «Невозможно открыть процесс» с PID 4! 12


182

Я пытался выяснить, как решить эту проблему в течение двух дней. Я новичок в такого рода вещах, поэтому я был бы признателен, если бы кто-нибудь сказал мне, как это исправить.

Я пытался удалить Skype, но это не сработало, я пытался отключить функцию всемирной паутины, IIS off, кажется, ничего не работает.

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

    Затем найдите службу публикации в Интернете (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
— Ал.Г.

28
«Служба отчетов SQL Server (MSSQLSERVER)» также использует порт 80 и поэтому должна быть остановлена, если на вашем компьютере установлен сервер MS-SQL.
— Джонкарка

1
Есть идеи, почему это может произойти? Это дурак Windows или кто-то взломал мою машину?
— Стэн Куинн

5
Я отключил сервисы World Wide Web Publishing, и проблема была решена! Спасибо.
— Майк Страттон

139

Другой очень простой вариант - просто настроить Apache для прослушивания через другой порт. Это можно сделать, нажав кнопку «Config» в той же строке, что и модуль «Apache», в раскрывающемся списке выберите файл «httpd.conf», а затем измените строку «Listen 80» на «Listen 8080». Сохраните файл и закройте его.

Теперь он избегает порта 80 и вместо него использует порт 8080. Единственное, что вам нужно сделать, это убедиться, что вы вставили localhost:8080браузер, чтобы браузер знал, что нужно искать порт 8080. В противном случае по умолчанию используется порт 80, и он не находит ваш локальный сайт.

Это также потребует от вас перезапустить Apache, чтобы изменения вступили в силу.

Вуаля! Исправлена.


Я получил принудительное обновление до Windows 10, и он сломал мою установку XAMP, этот ответ исправил это для меня. Спасибо!
— Ян

Это работало и для меня, за исключением того, что я вышел из всего, щелкнул по xampp_start C:/xamppи изменил его на порт 81. 8080 у меня не сработало.
— user3553260

1
Я рекомендую ваше решение. В моем случае мне нужно разработать приложение ASP .NET и PHP. Если я остановлюсь, World Wide Web Publishing Serviceя не смогу работать над моим приложением ASP. Так что изменение порта - это решение для меня. Спасибо!
— Михков

3
В дополнительном файле httpd.conf вам также может потребоваться изменить порт с «Config»> «Service and Port Settings». На вкладке «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. Перейдите к команде запуска и введите:

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

Последний номер здесь - это идентификатор процесса, который его использует. Чаще всего это служба IIS или другой веб-службы, которую легко разрешить, но время от времени (очень часто в Google это выглядит как оглядка) это PID 4, который согласно диспетчеру задач Windows является ядром NT и система. Не очень полезно, если убить, это приведет к синему экрану смерти.

Порт 80 не имеет ничего общего с IIS или сетью, это службы отчетов SQL Server. Отключите все, что напоминает службы SQL Server, и снова запустите Apache, перезагрузка не требуется.

Так проблемы с PID 4 прослушиванием порта 80? Проверьте ваши службы SQL и отключите их.

ОБНОВЛЕНИЕ - Комментарий от @sangam:

Работал на выстрел. В моем случае это были службы отчетов SQL-сервера. Я остановил службу для всех установленных экземпляров, и она заработала (без перезагрузки машины).


7
Работал на выстрел. В моем случае это были службы отчетов SQL-сервера. Я остановил службу для всех установленных экземпляров, и она заработала (без перезагрузки машины). Спасибо.
— Сангам

1
Очень полезно .. до этого я сменил скайп порт. и закрытие служб sql мне очень помогло. Большое спасибо
— Waqar

2
наконец, в моем случае это тоже был MSSQL
— Том Сардуй,

1
прекращени SQL Server Reporting Services (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 Workstation : если вы работаете с VMware Workstation, вам необходимо остановить сервер VMware Workstation - порт 443.

Эти опции прекрасно работают со мной, и я могу запустить сервис Apache без ошибок.

Другой вариант - изменить порт прослушивания Apache из httpd.conf и установить другой номер порта.

Надеюсь, что это решение поможет любому, кто столкнется с той же проблемой снова.


4
Моя была служба отчетов SQL Server. Спасибо!
— Джаянга Каушалья

остановка w3svc исправила мою проблему на windows 10. Отличный ответ.
— Nox

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

Для меня это сработало: «IIS: IIS использует порт 80 по умолчанию, поэтому вам нужно выключить его. Вы можете использовать следующие две команды: net stop w3svc, net stop iisadmin»
— Равиндра Сингх,

33

Возможно, вам придется остановить «Службу агента веб-развертывания»

Нажмите Win + R и введите services.msc

Щелкните правой кнопкой мыши службу агента веб-развертывания и выберите «Стоп».

Перезапустите XAMPP

Также после двойного щелчка «Служба агента веб-развертывания» вы можете установить тип запуска «Вручную», чтобы «Служба агента веб-развертывания» не запускалась автоматически.


1
Может ли быть проблема с отключением этой службы?
— Мухаммед Муаззам

6
  1. Откройте диспетчер задач (Ctrl + Alt + Delete).
  2. Перейдите на вкладку «Подробности».
  3. Сортировать по номеру PID.
  4. Завершить процесс, использующий номер PID, указанный в ошибке.
  5. Перезапустите XAMPP.

2
В моем случае это система, которая использует PID4. Поэтому это может быть опасно.
— Fusion

работал для меня, так как порт использовался моим другим сервером. И
— учтите

6

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

  1. Перейдите в «Диспетчер конфигурации SQL Server».
  2. Нажмите «Служба отчетов SQL Server» и остановите ее.

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

Самое смешное, что IIS работал нормально в той же конфигурации, но не в Apache, пришлось остановить службу отчетов SQL, чтобы она работала на порте по умолчанию (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. Измените значение «Пуск» на 4 (отключено)
  4. Перезагрузите компьютер

Не уверен, как это повлияет на другие сервисы, но это навсегда решило проблему, и до сих пор я не видел никаких проблем.

Использование Windows 10.


2

Если у вас есть службы отчетов SQLServer, работающие локально, вам также необходимо это остановить.


2

У меня была такая же проблема, но в моем случае Apache уже работал, и по какой-то причине инструмент настройки XAMPP этого не показал. Это случилось после того, как я впервые запустил XAMPP после установки. После сбоя других экземпляров Apache все было в порядке, и порты 80 и 443 снова были свободны.

Поэтому, прежде чем вносить изменения в свою систему, убедитесь, что чего-то такого очевидного, как вышеописанное, не происходит.


2

«Служба отчетов SQL Server» вызывала проблемы в моей системе, после ее остановки Apache начал работать нормально


2

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

"BranchCache Service" в сервисах.

Каким-то образом Windows обновляет, эта служба запускается при запуске и использует 80 портов. Когда вы проверяли через netstat, вы могли видеть, что система используется, но не могли понять, какая служба используется.


1
Отключение этой службы после каждого обновления Windows 10 решает проблему
— Matt

2

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


1

Щелкните сервисы на панели управления Xampp (имя файла - services.msc, дополнительная информация).

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

Если вы используете Skype, выйдите из этого, запустите Apache, затем запустите Skype


Обычно Skype загружает порт 80, но он умнее XAMPP и использует другой порт, как только обнаружит, что 80 принадлежит Apache Server
— ytpillai

1

У меня была такая же проблема, когда я установил MS WebMatrix, IIS Server был заблокирован порт 80, на котором работал XAMPP. Я пытался найти службу публикации в Интернете и остановить ее, но не смог найти ее в списке. Лучший способ изменить порт.

Пожалуйста, обратитесь по этой
ссылке ссылка.


1

Для тех, у кого ASP.NET, C # или пользователи SQL Server: если вы используете SQlServer ИЛИ Visual Studio, возможно, ваш порт встретится. самое простое, что вы можете сделать, это в Command> servies.msc, затем найти SQl Server Reporting Service и затем остановить его.


0

если сервис http.sys

Вам нужно изменить привязанный IP-адрес для http.sys

netsh http добавить iplisten ipaddress = ::

Работает нормально, без перезагрузки ОС.


0

Служба агента веб-развертывания развернута вместе с WebMatrix и стала причиной моих проблем. Он также может распространяться с другими приложениями, установленными с помощью установщика веб-платформы Microsoft.

Удаление это решило мои проблемы!


Нет, просто измените порт, который слушает сервер.
— Ранго

0

У меня обычно работает: - Отключить Skype - Отключить все процессы SQL Server, отображаемые в services.msc - Отключить публикацию в World Wide Web в services.msc



0

XAMPP - Порт 80 используется «Невозможно открыть процесс» с PID 4! 12

запустите комментарий в cmd tasklist

и найдите, какой PID и имя процесса связаны с этим теперь открытым оконным диспетчером задач

Вы также можете открыть диспетчер задач окна, используя CTRL + ALT + DEL

Теперь нажмите на вкладку процесса и найдите имя, которое с помощью PID и щелкните правой кнопкой мыши на этом и завершить процесс

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


0

У меня была такая же проблема. После некоторого поиска в Google прибыл на эту страницу. Так как я предполагаю, что эта ошибка может иметь разные причины, послушайте мой опыт:

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 и остановить Service с вашим PID.

На моем компьютере xampp все работало нормально :)

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