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

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

gtr1971
источник
Я получил принудительное обновление до 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
Ogglas
источник
Мне пришлось сделать это по моей проблеме. благость! этот 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-сервера. Я остановил службу для всех установленных экземпляров, и она заработала (без перезагрузки машины).

chridam
источник
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.
wmcnally
источник
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 запустился. Надеюсь, у вас все получилось.

midoriha_senpai
источник
3

В Windows 10, чтобы освободить порт 80:

в моем случае я открываю «Службы» из «Поиска Windows» (в левом углу экрана), затем останавливаю все службы сервера SQL MSSQLSERVER, и он снова работает

NP
источник
3

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

  1. Запустить RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Измените значение «Пуск» на 4 (отключено)
  4. Перезагрузите компьютер

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

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

Вард
источник
2

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

Senthil
источник
2

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

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

magnetronnie
источник
2

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

yadavr
источник
2

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

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

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

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

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

Зик
источник
1

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

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

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

ytpillai
источник
Обычно 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 и затем остановить его.

Sumanstm21
источник
0

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

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

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

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

mik3fly-4steri5k
источник
0

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

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

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

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

Ивона Кубович
источник
0

Обычно он работает после остановки IIS Server и Skype

Не Доступно
источник
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 все работало нормально :)

Марчин Бон
источник