El puerto 80 es uno de los puertos estándar más utilizados. Ya que sirve para publicar cualquier servicio web estándar que no sea por protocolo seguro HTTPS. Es decir, el puerto 80 es el puerto por defecto de los sistemas para publicar un servicio web por el protocolo no seguro HTTP.
Cuando utilizamos por ejemplo Xampp en Windows, en este caso este tutorial es sobre Windows 10, puede darse el caso de que no podamos levantar el Apache por el puerto 80 porque esté ocupado. Veamos qué errores podemos obtener y cómo liberar ese puerto 80 de nuestro sistema para que podamos utilizar Xampp sin problemas.
Otros tutoriales de Xampp que te pueden interesar:
Liberar puerto 80 Windows 7
Actualizar phpMyAdmin de Xampp
Actualizar PHP en Xampp
Instalar Ruby on Rails en Xampp
Tabla de contenidos
Xampp Port 80 in use
Si abrimos nuestro panel de control de Xampp puede darse la situación de que obtengamos el mensaje de error de que el puerto 80 está en uso y concretamente por el proceso con PID 4.
Este mensaje es muy explícito. Nos dice claramente que el puerto 80 está en uso y que está bloqueado por el proceso con PID número 4. Ahora solo tenemos que averiguar qué proceso es el que está ocupando el puerto 80 para detenerlo y así poder arrancar Xampp y hacer uso del puerto 80 para nuestras webs.
¿Qué aplicación está usando el puerto 80 en Windows 10?
Para saber qué aplicación está usando el puerto 80 tenemos dos opciones:
- Pulsar sobre el botón Netstat del Panel de Control de Xampp
- O lanzar el siguiente comando por consola de MS-DOS:
netstat -ano
Las dos opciones nos muestran la misma información. Un listado con todos los procesos del sistema y en qué puerto están levantados. Solo tendremos que buscar los que usan el puerto 80 para identificar el proceso que lo usa y así poder detenerlo.
Puede darse el caso de que el proceso que esté usando el puerto 80 sea el system.exe. En ese caso es más complicado, ya que no podemos detenerlo tal cual. Tenemos que irnos a la ventana de servicios de windows y localizar el Servicio que haga uso del puerto 80 y detenerlo.
Para abrir la ventana de Servicios de Windows 10, desde Xampp, pulsando el botón Services.
Otra opción, es desde Este equipo (del explorador de archivos), botón derecho del ratón, y pulsamos en Administrar. Ahí podemos ver la lista de servicios del sistema (siguiente imagen).
Solución 1 para liberar puerto 80 en Windows 10
Esta es la solución que a mí me funcionó. En mi caso el servicio que me estaba ocupando el puerto 80 era el servicio BranchCache. Supongo que este servicio es el que utiliza SVN Tortoise para poder consultar repositorios SVN y descargar el código fuente de las aplicaciones de nuestro repositorio. Como yo ya sabía que tenía instalado SVN Tortoise, sabía que este proceso es el típico que genera este problema.
Solo tuve que ponerlo en modo Manual y detenerlo y volver a intentar arrancar Apache desde Xampp Control Panel, y funcionó a la primera. Problema resuelto 😃.
Solución 2 para liberar puerto 80 en Windows 10
Otra solución es la que se comenta en multitud de foros, que es la de parar o detener el Servicio de Publicación World Wide Web. Este servicio en teoría solo os aparecerá si tenéis instalado el IIS en vuestro sistema y estáis publicando alguna web por este servidor web. Así, que si no tenéis instalado SVN Tortoise es muy posible que os aparezca este otro. Lo ponéis en modo manual y lo detenéis y ya debería dejaros levantar el Apache.
Aplicaciones que ocupan el puerto 80
Aquí el listado de aplicaciones que hasta ahora sé que pueden ocupar el puerto 80 y hacer que nuestro Apache no se levante.
- BranchCache: Este servicio es del Tortoise, el cliente de Windows para acceder repositorios software de subversion SVN.
- SQL Reporting Services o SQL Server Reporting: Este puedes tenerlo si usas SQL Server.
- VMware Workstation Server: Si tienes instalado VMware Workstation de las últimas versiones, puede que tengas este servicio levantado y sea la causa de que te esté ocupando el puerto 80.
Iré ampliando el listado según me vaya encontrando con alguna más 😉.
Hola a todos, por si a alguien le sirve de ayuda. En mi caso el servicio que usaba el puerto 80 era el SQL Reporting Services. Desactivando el inicio automático ya me funciona el apache en el puerto 80.
Genial...!! gracias, ese era mi problema.
Me alegro que se haya resuelto. Saludos!
Ese mismo es, SQL Server Reporting usa el puerto 80. Listo!!! Graciaaaaas!!!!
Muchas gracias Alexander era ese mismo error que no me permitia
trabajar
Muchas gracias, llevaba medio día buscando cual era el servicio y resultó ser lo que tu mencionas
Me alegro que te haya servido. Saludos!
Hola Alexander Arregui!
Tremenda solución... muchas gracias, casi sale a volar mi computadora del genio.
Te agradezco el tomarse el tiempo de compartir, tu soluciona.
Alex
Buenas tardes
En mi caso, tengo instalado Windows 10, el problema era el iisstart.htm, al escribir en la barra de direcciones localhost desplegaba la ventana de IIS Windows y esta ocupando el puerto 80.
Lo primero que me aprecia, era un servicio del kernel que estaba ocupando el puerto, desinstale XAMPP y lo reinstale, al buscar de nuevo vi que era la pagina iisstart.htm, deshabilite el servicio y le asigne el 8081 y Apache el puerto 80 e hice la prueba localhost mostro la pagina de XAMPP.
ya esta funcionando XAMPP bien.
Espero sea de utilidad para otros usuarios.
Muchas gracias Mario. Saludos!
Hola. Estoy usando Xampp en los puertos 80 y 443. Cree una cuenta en NO-IP e instalé el duc en la computadora que hace de servidor. El proveedor de Internet a puesto mi ip detrás de un CG-NAT y sólo a abierto en puerto efímero 49152. ¿Cómo puedo configurar Xampp para verlo en Internet?
Tienes que configurar una redirección en el router al pc donde tienes publicado el Xampp.
La solucion 2 me funciono correctamente. Gracias!!!!
Gracias a ti por decirnos que te ha funcionado 😉
Hola, muchas gracias por brindar estas soluciones... Muy buena la idea de agrupar todos los servicios que pueden estar ocupando el puerto 80....
En mi caso era el SQL Reporting Services
Me alegro que te haya servido para localizar el que te daba problemas en tu caso. Saludos 😉
Gracias! me funcionó a mi deshabilitando el servicio Branch......
En mi caso me indica que está ocupado por java.exe, lo detengo de manera manual y después abro xampp y al ejecutar MySQL me registra el mismo error, el toomcat lo corre sin problema. Alguna solución
El MySQL va por el puerto 3306, no debería darte problemas. Y lo de Java me extraña. Java como tal no ocupa ningún puerto, será alguna aplicación que tengas abierta hecha en Java la que ocupa el puerto 80. Un saludo.
Proto Dirección local Dirección remota Estado PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:81 0.0.0.0:0 LISTENING 4
Tengo esto que puede ser
Con eso es difícil saberlo. Abre la ventana de los servicios y ve deteniendo los que creas que pueden ser, e ir probando hasta que des con él. Un saludo.
TE AMO MUY FUERTE
Mi problema fue IIS en un equipo con Windows 7. Me ayudó mucho el artículo que publicó Juan Carlos Nieto para detener y desactivar la operación automática de IIS. Les dejo la página del artículo:https://juancarlosnieto.com/2016/desactivar-el-inicio-automatico-de-iis-en-windows-para-liberar-el-puerto-80/
SI mi puerto 80 esta siendo usado por services.exe, como resuelvo el problema?
Eso es que alguna aplicación del sistema operativo lo tiene en uso. Suele ser el IIS, sino tendrás que averiguar cuál podrá ser. Un saludo.
Hola si no encuentran el proceso que deben matar hice una herramienta grafica para matar procesos que ocupen un puerto dado el código fuente está en Github https://github.com/ilichnoise/killports
Hola Armando. Parece muy interesante. Ya la probaré cuando vuelva a tener problemas con algún puerto. Gracias por el aporte. Saludos!.
World wide publishing service también pasa por el 80
yo he cambiado el servicio de "VMware Workstation Server" a manual y ahora esta bien