XAMPP - ¡Puerto 80 en uso por "No se puede abrir el proceso" con PID 4! 12

182

He estado tratando de descubrir cómo solucionar este problema durante dos días. Soy nuevo en este tipo de cosas, así que agradecería que alguien me dijera cómo solucionarlo.

Intenté eliminar skype pero eso no funcionó, intenté desactivar la conexión a Internet, IIS desactivado, 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
usuario3097839
fuente
2
No, tengo que escribirlo aquí, no todo el mundo sabe todo acerca de las computadoras. Estaba pidiendo ayuda, la busqué en Google y todo lo que la gente dice que haga no funciona.
user3097839
Ah, esto tiene más sentido ahora. Pruebe petri.co.il/quickly_find_local_open_ports.htm para averiguar quién está bloqueando el puerto 80
Pekka
9
@Pekka He estado trabajando con computadoras desde poco después de que dejé de usar pañales, también he sido programador durante casi una década, y busqué en Google esta pregunta y, gracias a Dios, porque las personas que preguntan y responden esta pregunta UTILIZAN esto sitio, rápidamente encontré la respuesta. Aunque esto probablemente debería migrarse al superusuario, molestar a las personas y hacerlas sentir estúpidas por hacer una pregunta legítima es contrario a cómo funciona esta comunidad. Te sugiero que encuentres algún otro propósito en la vida.
3
Bueno, no estoy seguro de dónde se produjo este resultado durante su búsqueda, pero en mi búsqueda, gracias a este hilo, este fue el primero de la lista. Eso es precisamente lo que esta comunidad se esfuerza por ser, una base de conocimiento muy visible y bien conocida para este tipo de cosas. Entonces, aunque aprecio lo que estás diciendo, en realidad, la misión se logró gracias al OP.
@TechnikEmpire, pero el hecho de que esta pregunta ahora sea un resultado de Google de alto rango es parte del problema, no la solución. El resultado de Google ya contenía excelentes respuestas antes de que esta pregunta surgiera; lo revisé antes de hacer el comentario, siempre lo hago. Esas respuestas pueden haber sido rechazadas por esta pregunta, debido a la inmensa influencia de SO con Google. Vea también la discusión aquí: meta.stackexchange.com/questions/160565/…
Pekka

Respuestas:

354
  1. Abra una solicitud de CMD como administrador y ejecute el siguiente comando:

    net stop was /y
    
  2. Abra el cuadro de diálogo Ejecutar (presione Win+ R), luego escriba:services.msc

    Luego busque el Servicio de publicación World Wide Web ( Servicio de publicación WWW) y el Servicio de agente de implementación web y deténgalos. También deberías deshabilitarlos.

  3. Inicie Apache nuevamente con XAMPP :)

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

Vo Quoc Cuong
fuente
15
No puedo encontrar la red mundial
Mohammad Kermani
44
Otra forma de obtener acceso a los servicios de - ir aControl Panel > System and Security > Administrative tools > Services
Al.G.
28
El "Servicio de informes de SQL Server (MSSQLSERVER)" también usa el puerto 80 y, por lo tanto, debe detenerse si MS-SQL sever está instalado en su máquina.
johnkarka
1
¿Alguna idea de por qué esto podría ocurrir? ¿Es Windows siendo un imbécil o alguien pirateando mi máquina?
Stan Quinn
55
¡Desactivé los Servicios de publicación World Wide Web y el problema se resolvió! Gracias.
Mike Stratton
139

Otra opción muy fácil es simplemente configurar Apache para que escuche en un puerto diferente. Esto se puede hacer haciendo clic en el botón "Config" en la misma línea que el módulo "Apache", seleccione el archivo "httpd.conf" en el menú desplegable, luego cambie la línea "Listen 80" a "Listen 8080". Guarde el archivo y ciérrelo.

Ahora evita el Puerto 80 y usa el Puerto 8080 en su lugar sin problemas. Lo único que debe hacer es asegurarse de colocarlo localhost:8080en el navegador para que el navegador sepa que debe buscar en el puerto 8080. De lo contrario, se establece de manera predeterminada en el puerto 80 y no encontrará su sitio local.

Esto también requerirá que reinicie Apache para que el cambio surta efecto.

Voila! Fijo.

gtr1971
fuente
Obtuve la actualización a Windows 10 y rompió mi instalación de XAMP, esta respuesta me lo arregló. ¡Gracias!
Ian
Esto también funcionó para mí, excepto que salí de todo, hice clic en xampp_start C:/xamppy luego lo cambié al puerto 81. 8080 no funcionó para mí.
user3553260
1
Recomiendo tu solución En mi caso, necesito desarrollar la aplicación ASP .NET y PHP. Si paro World Wide Web Publishing Service, no puedo trabajar en mi aplicación ASP. Entonces, cambiar el puerto es la solución para mí. ¡Gracias!
mihkov
3
En el archivo httpd.conf adicional, es posible que también deba cambiar el puerto de "Configuración"> "Servicio y configuración del puerto". En la pestaña "Apache", cambie el valor de "Puerto principal" al nuevo puerto
Ian A
42

En httpd.conf cambie las siguientes líneas y luego reinicie la aplicación:

  • Listen 80 a Listen 8080
  • ServerName localhost:80 a ServerName localhost:8080

Cuando presiona "Inicio", la aplicación aún puede decir que tiene un error como "Puerto 80 en uso por" No se puede abrir el proceso "con PID ..." pero seguirá funcionando.

Si el error incluye "Puerto 443 en uso por" No se puede abrir el proceso "con PID ...", debe cambiar tanto httpd.conf como httpd-ssl.conf.

En el cambio httpd-ssl.conf:

  • Listen 443 a Listen 4433
  • <VirtualHost _default_:443> a <VirtualHost _default_:4433>
  • ServerName www.example.com:443 a ServerName www.example.com:4433
Ogglas
fuente
Terminé teniendo que hacer esto en mi problema. ¡bondad! ese PID es por el sistema.
mzimhle
42

Extraído de este artículo :

  1. Vaya a su comando de ejecución e ingrese:

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

El último número aquí es la identificación del proceso que lo usa. Esto es más a menudo IIS u otro servicio relacionado con la web y es fácil de resolver, pero de vez en cuando (muy a menudo parece estar buscando en Google) parece ser PID 4, que según el Administrador de tareas de Windows es el kernel NT y Sistema. No es muy útil dado que matar esto dará como resultado una pantalla azul de la muerte.

Lo que acapara el puerto 80 no tiene nada que ver con IIS o la web, es SQL Server Reporting Services. Apague todo lo que se parezca a los servicios de SQL Server e inicie Apache nuevamente, sin necesidad de reiniciar.

Entonces, ¿problemas con PID 4 escuchando el puerto 80? Verifique sus servicios SQL y desactívelos.

ACTUALIZACIÓN - Comentario de @sangam:

Trabajó en un tiro. En mi caso, resultó ser servicios de informes del servidor SQL. Detuve el servicio para todas las instancias instaladas, y funcionó (sin reiniciar la máquina).

chridam
fuente
77
Trabajó en un tiro. En mi caso, resultó ser servicios de informes del servidor SQL. Detuve el servicio para todas las instancias instaladas, y funcionó (sin reiniciar la máquina). Gracias.
sangam
1
Muy útil ... antes de esto, cambié el puerto de Skype. y el cierre de los servicios sql me ayudó mucho. Muchas gracias
Waqar
2
finalmente, en mi caso también fue MSSQL
Tom Sarduy
1
la detención de SQL Server Reporting Services (MSSQLSERVER) funcionó para mí
Disturb
1
Gracias, esta fue la respuesta para mí.
Balron
34

Así que me he enfrentado al mismo problema al intentar iniciar el servicio Apache y me gustaría compartir mis soluciones con usted. Aquí hay algunas notas sobre servicios o programas que pueden usar el puerto 80:

  1. Skype : Skype usa el puerto 80/443 de forma predeterminada. Puede cambiar esto Tools -> Options -> Advanced -> Connectionsy deshabilitar la casilla de verificación "usar el puerto 80 y 443 para conexiones entrantes adicionales" .

  2. IIS : IIS utiliza el puerto 80 predeterminado, por lo que debe apagarlo. Puede usar los siguientes dos comandos: net stop w3svc, net stop iisadmin.

  3. Servicio de informes de SQL Server : debe detener este servicio porque puede tomar el puerto 80 si IIS no se está ejecutando. Ir a los servicios locales y detenerlo.

  4. VMware Workstation : si está ejecutando VMware Workstation, debe detener el servidor VMware Workstation, el puerto 443 también.

Estas opciones funcionan muy bien conmigo y puedo iniciar el servicio Apache sin errores.

La otra opción es cambiar el puerto de escucha de Apache desde httpd.conf y establecer otro número de puerto.

Espero que esta solución ayude a cualquiera que enfrente el mismo problema nuevamente.

Peter T.
fuente
44
El mío era el servicio de informes de SQL Server. ¡Gracias!
Jayanga Kaushalya
detener w3svc solucionó mi problema en Windows 10. Gran respuesta.
Nox
¿Cómo puede saber qué servicios están utilizando el puerto 80? (Windows 10)
Chris Nielsen
Para mí esto funcionó "IIS: IIS usa el puerto 80 predeterminado, por lo que debe apagarlo. Puede usar los dos comandos siguientes: net stop w3svc, net stop iisadmin"
Ravindra Singh el
33

Es posible que deba detener el "Servicio del Agente de implementación web"

Presione Win + R y escriba services.msc

Haga clic derecho en Servicio de agente de implementación web y seleccione "Detener"

Reiniciar XAMPP

Además, después de hacer doble clic en "Servicio de agente de implementación web", puede hacer que el Tipo de inicio sea Manual, de modo que el "Servicio de agente de implementación web" no se inicie automáticamente

Stephen Burrows
fuente
1
¿Puede haber algún problema al deshabilitar ese servicio?
Muhammad Muazzam
6
  1. Abra el Administrador de tareas (Ctrl + Alt + Eliminar).
  2. Vaya a la pestaña "Detalles".
  3. Ordenar por número de PID.
  4. Finalice el proceso que utiliza el número PID indicado por error.
  5. Reinicie XAMPP.
wmcnally
fuente
2
En mi caso, es el sistema el que está usando PID4. Por lo tanto, esto puede ser peligroso.
Fusion
funcionó para mí ya que mi otro servidor utilizó el puerto. Y considere el comentario de @ Fusion también
Varshaan
6

Como hay comentarios de @johnkarka sobre la pregunta, este puerto también lo utiliza el servicio de informes de SQL Server. Después de detener esto, Apache comenzó bien.

  1. Vaya a "Administrador de configuración de SQL Server"
  2. Haga clic en "SQL Server Reporting Service" y deténgalo

ingrese la descripción de la imagen aquí

Lo curioso es que IIS funcionaba bien en la misma configuración, pero no en Apache, tuvo que detener el servicio de Informes SQL para que funcionara en el puerto predeterminado (80).

Hammad Khan
fuente
4

Lo que funcionó para mí fue detener los Servicios de Información de Internet (IIS). Si está utilizando Windows 7, haga clic en el botón Inicio y en su cuadro de búsqueda, escriba "iis". Haga clic en "Administrador de Internet Information Services (IIS)". Cuando aparece la ventana, y asumiendo que no tiene ninguno de los íconos seleccionados, debería poder hacer clic en Detener en el panel de acción derecho. Mi XAMPP Apache comenzó de inmediato. Espero que todo te haya funcionado.

midoriha_senpai
fuente
3

En Windows 10, para liberar el puerto 80:

en mi caso, abro "Servicios" desde "Buscar Windows" (en la esquina izquierda de la pantalla), luego detengo todos los servicios del servidor SQL MSSQLSERVER y funciona de nuevo

notario público
fuente
3

También tuve este problema y detener los servicios usando el puerto 80 no ayudó. Lo resolví siguiendo este procedimiento (que se encuentra en un tablero francés ):

  1. Lanzar RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Cambie el valor de "inicio" a 4 (deshabilitado)
  4. Reinicie su computadora

No estoy seguro de cómo esto afecta a otros servicios, pero resolvió permanentemente el problema y hasta ahora no vi ningún problema.

Usando Windows 10.

vard
fuente
2

Si tiene SQLServer Reporting Services ejecutándose localmente, entonces también debe detenerlo ...

Senthil
fuente
2

Tuve el mismo problema, pero en mi caso Apache ya se estaba ejecutando y, por alguna razón, la herramienta de configuración XAMPP no lo mostró. Sucedió después de que comencé XAMPP por primera vez después de la instalación. Después de bloquear las otras instancias de Apache, todo estaba bien y los puertos 80 y 443 estaban libres nuevamente.

Entonces, antes de hacer cambios en su sistema, asegúrese de que algo tan obvio como lo anterior no esté sucediendo.

magnetronnie
fuente
2

"SQL Server Reporting Service" estaba causando problemas en mi sistema, después de detenerlo, Apache comenzó a funcionar bien

yadavr
fuente
2

Tengo el mismo problema, resolví el problema, solo deshabilité

"Servicio BranchCache" en servicios.

De alguna manera, las actualizaciones de Windows, este servicio se activa en el inicio y utiliza 80 puertos. Cuando verifica a través de netstat, puede ver que el sistema se usa, pero no puede entender qué servicio se usa.

Günay Gültekin
fuente
1
Deshabilitar este servicio después de cada actualización de Windows 10 resuelve el problema
Matt
2

Después de cambiar el puerto principal 80 a 8080, debe actualizar el puerto en el panel de control: ingrese la descripción de la imagen aquí luego haga clic aquí: ingrese la descripción de la imagen aquí y aquí: ingrese la descripción de la imagen aquí guarde y reinicie.

Zeke
fuente
1

Haga clic en servicios en el panel de control de Xampp (el nombre de archivo es services.msc, información adicional).

Primero, busque IIS, si se está ejecutando. Deténgalo (detenga esta opción de servicio a la izquierda después de hacer clic en el nombre del servicio). Entonces, este es el problema principal, busque el servicio de implementación web (no es el nombre exacto, aunque tiene una implementación web al principio). Detén este servicio también. Inténtalo de nuevo y Apache debería funcionar.

Si está ejecutando Skype, salga de eso también, ejecute Apache, luego inicie Skype

Ytpillai
fuente
Normalmente, Skype acapara el puerto 80 pero es más inteligente que XAMPP y usará un puerto diferente una vez que se dé cuenta de que 80 pertenece al servidor Apache
ytpillai
1

Tuve el mismo problema, cuando instalé MS WebMatrix, IIS Server bloqueó el puerto 80 en el que XAMPP se estaba ejecutando. Traté de encontrar el Servicio de publicación World Wide Web y detenerlo, pero no pude encontrarlo en la lista. La mejor manera es cambiar un puerto.

Consulte con este
enlace ref.

rango
fuente
1

Para aquellos con ASP.NET, C # o que tienen usuarios de SQL Server, si está utilizando SQlServer O Visual Studio Su puerto puede encontrarse. Lo más fácil que puede querer hacer es en Command> servies.msc y luego busque SQl Server Reporting Service y luego deténgalo.

Sumanstm21
fuente
0

si el servicio es http.sys

Debe cambiar la dirección IP enlazada para http.sys

netsh http add iplisten ipaddress = ::

Funciona bien sin reiniciar el sistema operativo.

mik3fly-4steri5k
fuente
0

El servicio del Agente de implementación web se implementó con WebMatrix y fue la causa de mis problemas. También se puede distribuir con otras aplicaciones instaladas usando el Instalador de plataforma web de Microsoft.

Desinstalar resolvió mis problemas!

brunodotcom
fuente
No, solo cambia el puerto en el que el servidor escucha.
rango
0

Para mí, por lo general, funciona: - Apague Skype - Apague todos los procesos de SQL Server que se muestran en services.msc - Apague World Wide Web Publishing en services.msc

Iwona Kubowicz
fuente
0

Por lo general, funciona después de detener el servidor IIS y Skype

N / A
fuente
0

XAMPP - ¡Puerto 80 en uso por "No se puede abrir el proceso" con PID 4! 12

ejecuta el comentario en cmd tasklist

y encuentre qué PID y nombre de proceso relacionado con esto ahora abren el administrador de tareas de la ventana

También puede abrir el administrador de tareas de la ventana utilizando CTRL + ALT + SUPR

ahora haga clic en la pestaña de proceso y encuentre el nombre que usa PID y haga clic derecho en eso y finalice el proceso

ahora nuevamente reinicie el xampp

Surendra Kumar Ahir
fuente
0

Tuve el mismo problema Después de un poco de google llegó a esta página. Como supongo que este error puede tener varias razones, escuche mi experiencia:

Registro de línea roja de 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 resultó que tenía esta línea de código en mis códigos php:

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

El propósito de este fragmento de código era obtener un espejo del resultado de PHP desde algún lugar de mi servidor. ¡Pero está atrapado en un bucle que tiene su propio contenido!

Reparé el código:

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

Luego reinicié Apache ... y ese error de Apache nunca volvió a ocurrir.

Entonces, a veces, buscar un punto de detención probable en su código es un buen enfoque.

Hossein Khalesi
fuente
0

En Ubuntu de manera predeterminada, el sistema no le permitirá ocupar puertos privilegiados [0 a 1023], aparte de especificar el puerto como 80, debe ejecutar XAMP con sudo.

Arun Joshla
fuente
-1

Escribo esto, porque no pude encontrar answear para la misma pregunta. En mi caso, el PID fue de 2484.

  1. debe encontrar un proceso o servicio con este PID: abra cmd (en Windows) y escriba:

    tasklist
    
  2. Encuentre su PID en esta lista y lea el nombre del proceso o servicio.

  3. Ahora puedes matar esto usando el Administrador de tareas

  4. encuentre este nombre en la lista de procesos

  5. haga clic en Finalizar proceso.

Ese es mi caso. Posiblemente deba abrir services.msc y detener el Servicio con su PID.

En mi computadora xampp funcionó bien :)

Marcin Bąk
fuente