XAMPP - Porta 80 em uso por “Não foi possível abrir o processo” com o PID 4! 12

182

Eu tenho tentado descobrir como corrigir este problema por dois dias. Eu sou novo nesse tipo de coisa, então eu apreciaria se alguém pudesse me dizer como consertar isso.

Eu tentei excluir o skype, mas isso não funcionou, tentei desativar a coisa na World Wide Web, IIS desativado, nada parece funcionar.

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
fonte
2
Não é necessário digitar aqui, nem todo mundo sabe tudo sobre computadores. Eu estava pedindo ajuda, pesquisei no Google e tudo o que as pessoas dizem para fazer não funciona.
user3097839
Ah, isso faz mais sentido agora. Tente petri.co.il/quickly_find_local_open_ports.htm para descobrir quem está bloqueando a porta 80
Pekka
9
@Pekka Eu trabalho com computadores desde que não muito tempo depois que parei de usar fraldas, sou programador há quase uma década e pesquisei essa pergunta e felizmente porque as pessoas que fazem e respondem a essa pergunta usam este site, eu rapidamente encontrei a resposta. Embora isso provavelmente deva ser migrado para superusuário, incomodar as pessoas e fazê-las se sentir estúpidas por fazer uma pergunta legítima é contrário ao funcionamento dessa comunidade. Eu sugiro que você encontre algum outro propósito na vida.
3
Bem, eu não tenho certeza de onde esse resultado foi produzido durante a sua pesquisa, mas na minha pesquisa, graças a este tópico, este foi o topo da lista. É exatamente isso que essa comunidade se esforça para ser, uma base de conhecimento altamente visível e conhecida para esse tipo de coisa. Então, embora eu aprecie o que você está dizendo, na realidade, a missão cumprida graças ao OP.
@TechnikEmpire, mas o fato de esta questão ser agora um resultado de alto escalão do Google faz parte do problema, não da solução. O resultado do Google já continha ótimas respostas antes que essa pergunta surgisse - eu verifiquei antes de fazer o comentário, sempre o faço. Essas respostas agora podem ter sido rejeitadas por essa pergunta, devido à imensa influência da SO com o Google. Consulte também a discussão aqui: meta.stackexchange.com/questions/160565/…
Pekka

Respostas:

354
  1. Abra um prompt do CMD como administrador e execute o seguinte comando:

    net stop was /y
    
  2. Abra a caixa de diálogo Executar (pressione Win+ R) e digite:services.msc

    Em seguida, procure o Serviço de Publicação na World Wide Web ( Serviço de Publicação na WWW) e o Serviço do Agente de Implantação da Web e pare-os. Você também deve desativá-los.

  3. Inicie o Apache novamente com o XAMPP :)

Ref do link: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Vo Quoc Cuong
fonte
15
Não consigo encontrar a world wide web
Mohammad Kermani
4
Outra maneira de obter acesso aos serviços - vá paraControl Panel > System and Security > Administrative tools > Services
Al.G.
28
O "Serviço de Relatório do SQL Server (MSSQLSERVER)" também usa a porta 80 e, portanto, deve ser interrompida se o servidor MS-SQL for instalado na sua máquina.
precisa saber é o seguinte
1
Alguma idéia de por que isso pode ocorrer? O Windows está sendo idiota ou alguém invadindo minha máquina?
Stan Quinn
5
Desativei os Serviços de publicação na World Wide Web e o problema foi resolvido! Obrigado.
Mike Stratton
139

Outra opção muito fácil é simplesmente configurar o Apache para ouvir em uma porta diferente. Isso pode ser feito clicando no botão "Config" na mesma linha do módulo "Apache", selecione o arquivo "httpd.conf" no menu suspenso e altere a linha "Listen 80" para "Listen 8080". Salve o arquivo e feche-o.

Agora, evita a porta 80 e usa a porta 8080 sem problemas. A única coisa adicional que você precisa fazer é colocar localhost:8080o navegador para que ele procure a porta 8080. Caso contrário, o padrão será a porta 80 e não encontrará o site local.

Isso também exigirá que você reinicie o Apache para que a alteração entre em vigor.

Voila! Fixo.

gtr1971
fonte
Fiz uma atualização da força para o Windows 10 e ele quebrou minha instalação do XAMP, esta resposta a corrigiu. Obrigado!
Ian
Isso funcionou para mim também, exceto que eu saí de tudo, cliquei em xampp_start C:/xamppe depois mudei para a porta 81. 8080 não funcionou para mim.
usuário3553260
1
Eu recomendo sua solução. No meu caso, preciso desenvolver aplicativos ASP .NET e PHP. Se eu parar, World Wide Web Publishing Servicenão posso trabalhar no meu aplicativo ASP. Então, mudar a porta é a solução para mim. Obrigado!
mihkov
3
Além do arquivo httpd.conf, você também pode precisar alterar a porta de "Config"> "Configurações de serviço e porta". Na guia "Apache", altere o valor "Main Port" para a nova porta
Ian A
42

No httpd.conf, altere as seguintes linhas e reinicie o aplicativo:

  • Listen 80 para Listen 8080
  • ServerName localhost:80 para ServerName localhost:8080

Quando você pressiona "Iniciar", o aplicativo ainda pode dizer que há um erro como "Porta 80 em uso por" Não é possível abrir o processo "com PID ...", mas ainda funcionará.

Se o erro incluir "Porta 443 em uso por" Não é possível abrir o processo "com PID ...", será necessário alterar o httpd.conf e o httpd-ssl.conf.

Na mudança httpd-ssl.conf:

  • Listen 443 para Listen 4433
  • <VirtualHost _default_:443> para <VirtualHost _default_:4433>
  • ServerName www.example.com:443 para ServerName www.example.com:4433
Ogglas
fonte
Acabei tendo que fazer isso no meu problema. bondade! esse PID é pelo sistema.
Mkimhle
42

Extraído deste artigo :

  1. Vá para o comando run e digite:

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

O último número aqui é o ID do processo que está sendo usado. Geralmente, esse é o serviço IIS ou outro serviço relacionado à Web e é fácil de resolver, mas, de vez em quando (muitas vezes parece procurar no google), parece ser o PID 4 - que, de acordo com o Gerenciador de Tarefas do Windows, é o Kernel do NT e Sistema. Não é muito útil, pois matar isso resultará em uma tela azul da morte.

A coisa que monopoliza a porta 80 não tem nada a ver com o IIS ou a Web, é o SQL Server Reporting Services. Desative qualquer coisa que se assemelhe a um SQL Server Services e inicie o Apache novamente, sem necessidade de reinicialização.

Então, problemas com o PID 4 ouvindo a porta 80? Verifique seus serviços SQL e desative-os.

UPDATE - Comentário de @sangam:

Trabalhou em um tiro. No meu caso, acabou por ser o serviço de relatórios do SQL Server. Parei o serviço para todas as instâncias instaladas e funcionou (sem a reinicialização da máquina).

chridam
fonte
7
Trabalhou em um tiro. No meu caso, acabou por ser o serviço de relatórios do SQL Server. Parei o serviço para todas as instâncias instaladas e funcionou (sem a reinicialização da máquina). Obrigado.
sangam
1
Muito útil .. antes disso, mudei a porta do skype. e o fechamento dos serviços sql me ajudou muito. Muito obrigado
Waqar
2
finalmente, no meu caso, também era MSSQL
Tom Sarduy 8/16
1
parar o SQL Server Reporting Services (MSSQLSERVER) funcionou para mim
Perturbe
1
Obrigado, esta foi a resposta para mim.
balron 15/01
34

Portanto, enfrentei o mesmo problema ao tentar iniciar o serviço Apache e gostaria de compartilhar minhas soluções com você. Aqui estão algumas notas sobre serviços ou programas que podem usar a porta 80:

  1. Skype : o Skype usa a porta 80/443 por padrão. Você pode alterar isso Tools -> Options -> Advanced -> Connectionse desativar a caixa de seleção "use as portas 80 e 443 para conexões adicionais de entrada" .

  2. IIS : o IIS usa a porta 80 como padrão, então você precisa desligá-la. Você pode usar os dois comandos a seguir: net stop w3svc, net stop iisadmin.

  3. Serviço de Relatório do SQL Server : você precisa interromper esse serviço, pois pode levar a porta 80 se o IIS não estiver em execução. Vá para os serviços locais e pare com isso.

  4. VMware Workstation : se você estiver executando o VMware Workstation, também precisará interromper o servidor VMware Workstation - porta 443.

Essas opções funcionam muito bem comigo e posso iniciar o serviço Apache sem erros.

A outra opção é alterar a porta de escuta do Apache de httpd.conf e definir outro número de porta.

Espero que esta solução ajude qualquer um que enfrentar o mesmo problema novamente.

Peter T.
fonte
4
O meu era o serviço de relatório do SQL Server. Obrigado!
Jayanga Kaushalya
parar w3svc corrigiu meu problema no windows 10. Ótima resposta.
Nox
Como você pode saber quais serviços estão usando a porta 80? (Windows 10)
Chris Nielsen
Para mim isso funcionou "IIS: usa a porta 80 seja padrão IIS então você precisa desligá-lo Você pode usar os dois comandos a seguir:. Net stop w3svc, net stop iisadmin"
Ravindra Singh
33

Pode ser necessário interromper o "Serviço do Agente de Implantação da Web"

Pressione Win + R e digite services.msc

Clique com o botão direito do mouse em Serviço do Agente de Implantação da Web e selecione "Parar"

Reinicie o XAMPP

Depois de clicar duas vezes em "Serviço do Agente de Implantação da Web", você pode fazer o Tipo de inicialização como Manual, para que o "Serviço do Agente de Implantação da Web" não seja iniciado automaticamente.

Stephen Burrows
fonte
1
Pode haver algum problema ao desativar esse serviço?
Muhammad Muazzam
6
  1. Abra o Gerenciador de tarefas (Ctrl + Alt + Delete).
  2. Vá para a guia "Detalhes".
  3. Classifique pelo número do PID.
  4. Finalize o processo que está usando o número PID indicado por erro.
  5. Reinicie o XAMPP.
wmcnally
fonte
2
No meu caso, é o sistema que está usando o PID4. Portanto, isso pode ser perigoso.
Fusion
trabalhou para mim como porta foi usada pelo meu outro servidor. E considerar @ comentário do Fusion também
Varshaan
6

Como há comentários de @johnkarka na pergunta, essa porta também é usada pelo serviço de relatório do SQL Server. Depois de parar com isso, o Apache começou bem.

  1. Vá para "SQL Server Configuration Manager"
  2. Clique em "SQL Server Reporting Service" e pare-o

insira a descrição da imagem aqui

O engraçado é que o IIS estava funcionando bem na mesma configuração, mas não no Apache, teve que parar o serviço de Relatório SQL para fazê-lo funcionar na porta padrão (80).

Hammad Khan
fonte
4

O que funcionou para mim foi interromper o Internet Information Services (IIS). Se você estiver usando o Windows 7, clique no botão Iniciar e, na caixa de pesquisa, digite "iis". Clique em "Gerenciador do Internet Information Services (IIS)". Quando a janela aparecer, e supondo que você não tenha nenhum dos ícones selecionados, poderá clicar em Parar no painel de ações correto. Meu XAMPP Apache foi iniciado. Espero que tudo tenha funcionado para você.

midoriha_senpai
fonte
3

No Windows 10, para liberar a porta 80:

no meu caso, abro "Serviços" em "Pesquisar Windows" (no canto esquerdo da tela), paro todos os serviços do servidor SQL MSSQLSERVER e ele funciona novamente

NP
fonte
3

Eu também tive esse problema e interromper os serviços usando a porta 80 não ajudou. Eu o resolvi seguindo este procedimento (encontrado em uma placa francesa ):

  1. Iniciar RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Altere o valor de "start" para 4 (desativado)
  4. Reinicie o computador

Não tenho certeza de como isso afeta outros serviços, mas resolveu permanentemente o problema e até agora não vi nenhum problema.

Usando o Windows 10.

vard
fonte
2

Se você tiver o SQLServer Reporting Services executando localmente, precisará interromper isso também.

Senthil
fonte
2

Eu tive o mesmo problema, mas no meu caso o Apache já estava em execução e, por algum motivo, a ferramenta de configuração do XAMPP não mostrou isso. Isso aconteceu depois que eu iniciei o XAMPP pela primeira vez após a instalação. Depois de travar as outras instâncias do Apache, tudo estava bem e as portas 80 e 443 ficaram livres novamente.

Portanto, antes de fazer alterações em seu sistema, verifique se algo tão óbvio quanto o descrito acima não está acontecendo.

magnetronnie
fonte
2

"O SQL Server Reporting Service" estava causando problemas no meu sistema. Depois de interrompê-lo, o Apache começou a funcionar bem

yadavr
fonte
2

Estou com o mesmo problema, resolvi o problema, apenas desabilitei

"Serviço BranchCache" em serviços.

De alguma forma, o Windows é atualizado, esse serviço é acionado na inicialização e usa 80 portas. Quando você verifica via netstat, pode ver que o sistema é usado, mas não consegue entender qual serviço é usado.

Günay Gültekin
fonte
1
A desativação desse serviço após cada janelas 10 resoluções de atualização a questão
Matt
2

Após alterar a porta principal 80 para 8080, é necessário atualizar a porta no painel de controle: insira a descrição da imagem aqui Em seguida, clique aqui: insira a descrição da imagem aqui E aqui: insira a descrição da imagem aqui Salve e reinicie.

Zeke
fonte
1

Clique em serviços no painel de controle do Xampp (o nome do arquivo é services.msc, informações adicionais).

Primeiro, procure o IIS, se estiver em execução. Pare (pare esta opção de serviço à esquerda depois de clicar no nome do serviço.). Então, esse é o principal problema, procure o Serviço de Implantação da Web (não o nome exato, embora tenha implantação na Web no início). Interrompa este serviço também. Tente novamente e o Apache deve funcionar.

Se você estiver executando o Skype, saia disso também, execute o Apache e inicie o Skype

ytpillai
fonte
Normalmente, Skype porcos-se a porta 80, mas é mais inteligente do XAMPP e vai usar uma porta diferente, uma vez que percebe que 80 pertence a Apache Servidor
ytpillai
1

Eu tive o mesmo problema, quando instalei o MS WebMatrix, o IIS Server foi bloqueado na porta 80 na qual o XAMPP estava sendo executado. Tentei encontrar o Serviço de Publicação na World Wide Web e pará-lo, mas não o encontrei na lista. A melhor maneira é mudar uma porta.

Por favor, consulte este
link ref.

rango
fonte
1

Para aqueles com ASP.NET, C # ou com usuários do SQL Server, se você estiver usando SQlServer OU Visual Studio Sua porta pode ser encontrada. A coisa mais fácil que você deseja fazer é em Command> servies.msc, localize o SQl Server Reporting Service e pare-o.

Sumanstm21
fonte
0

se o serviço for http.sys

Você precisa alterar o endereço IP vinculado para http.sys

netsh http add iplisten ipaddress = ::

Funcione bem sem reiniciar o sistema operacional.

mik3fly-4steri5k
fonte
0

O Serviço do Agente de Implantação da Web foi implantado com o WebMatrix e foi a causa dos meus problemas. Também pode ser distribuído com outros aplicativos instalados usando o Microsoft Platform Installer da Microsoft.

Desinstalar resolveu meus problemas!

brunodotcom
fonte
Não, basta alterar a porta na qual o servidor escuta.
Rango #
0

Para mim, geralmente funciona: - Desligue o Skype - Desligue todos os processos do SQL Server exibidos em services.msc - Desligue a publicação na World Wide Web em services.msc

Iwona Kubowicz
fonte
0

Geralmente funciona depois que você interrompe o IIS Server e o Skype

N / D
fonte
0

XAMPP - Porta 80 em uso por “Não foi possível abrir o processo” com o PID 4! 12

execute o comentário na lista de tarefas do cmd

e descubra qual o PID e o nome do processo relacionados a esse gerenciador de tarefas agora aberto

você também pode abrir o gerenciador de tarefas da janela usando CTRL + ALT + DEL

Agora clique na guia Processo e encontre o nome que, usando PID, clique com o botão direito do mouse e finalize o processo.

agora novamente reinicie o xampp

Surendra Kumar Ahir
fonte
0

Eu tive o mesmo problema. Depois de pesquisar no Google, chegou a esta página. Como acho que esse erro pode ter vários motivos, ouça minha experiência:

Log de linha vermelha 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!
...

Finalmente, descobri que eu tinha essa linha de código nos meus códigos php:

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

O objetivo deste trecho de código era obter um espelho do resultado do php em algum lugar do meu servidor. Mas é apenas preso em um loop que recebe seu próprio conteúdo!

Eu reparei o código:

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

Então eu reiniciei o apache ... e esse erro do apache nunca mais aconteceu.

Portanto, às vezes, procurar por prováveis pontos de parada no seu código é uma boa abordagem.

Hossein Khalesi
fonte
0

No Ubuntu, por padrão, o sistema não permitirá que você ocupe portas privilegiadas [0 a 1023], além de especificar a porta como 80, você precisa executar o XAMP com o sudo.

Arun Joshla
fonte
-1

Escrevo isso, porque não encontrei respostas para a mesma pergunta. No meu caso, o PID era 2484.

  1. você deve encontrar um processo ou serviço com este PID: abra o cmd (no Windows) e escreva:

    tasklist
    
  2. Encontre seu PID nesta lista e leia o nome do processo ou serviço.

  3. Agora você pode matar isso usando o Gerenciador de tarefas

  4. encontre esse nome na lista de processos

  5. clique em Finalizar processo.

Esse é o meu caso. Possivelmente, você deve abrir services.msc e interromper o serviço com seu PID.

No meu computador xampp funcionou bem :)

Marcin Bąk
fonte