XAMPP: no se pudo iniciar Apache (Windows 10)

89

Estoy usando XAMPP y puedo iniciar Apache, pero, ¡comienza MySQL ( phpMyAdmin )!

Cuando comienzo, obtengo este error;

10:07:49 [Apache] Error: Apache shutdown unexpectedly.
10:07:49 [Apache] This may be due to a blocked port, missing dependencies,
10:07:49 [Apache] improper privileges, a crash, or a shutdown by another method.
10:07:49 [Apache] Press the Logs button to view error logs and check
10:07:49 [Apache] the Windows Event Viewer for more clues
10:07:49 [Apache] If you need more help, copy and post this
10:07:49 [Apache] entire log window on the forums

Lo busco y cambio el puerto de Apache en Config -> Configuración de servicio y puerto. Yo tengo;

Service name: Apache 2.4
Main port: 122
SSL port: 444

También desinstalo Skype (versión Windows 8/10 / Metro). Nada funciona. En el archivo httpd.conf que tengo;

Listen 122
ServerName localhost:122

Lo comienzo vía apache_start.baty obtengo;

(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address [::]:445
(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address 0.0.0.0:445
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

¡Tenga en cuenta que no existen todos los archivos de registro ! Skype está desinstalado.

Félix Desjardins
fuente
¿Verificó si el puerto está bloqueado?
Rizier123
1
Intente ejecutar también como administrador
nonamorando
3
¿Está ejecutando skype cuando intenta habilitar apache? Si es así, cambie la configuración de Skype.
iSaumya
3
No puedes tener localhost:80y escuchar el puerto 122. Elija qué puerto escuchar.
Lorenz Meyer
Ok, hice algunas modificaciones: @ Rizier123 -> Lo verifico pero no estoy seguro si es la buena manera. @ Will-Campbell -> Sí, pero nada más. @iSaumya -> Skype no está en mi computadora. @ Lorenz-Meyer -> Tengo ahora Listen 122yServerName localhost:122
Félix Desjardins

Respuestas:

223

Actualización: 15 de mayo de 2018:

La última actualización de Windows 10 (re) activó el Servicio de publicación World Wide Web (en alemán: WWW-Publishingdienst ). Esto puede depender de las opciones que seleccione durante la configuración de la actualización que puede realizar posteriormente.

Actualización: 4 de agosto de 2015:

Si ha realizado una instalación limpia de Windows 10, es posible que no tenga el servicio de publicación Word Wide Web . En ese caso, la instalación simple de WAMP / XAMPP debería funcionar bien.

Si no es así, intente instalar Visual C ++ Redistributable y luego vuelva a instalar WAMP / XAMPP.


Estaba enfrentando un problema similar con WAMP. En Windows 10 TP, el servicio de publicación Word Wide Web viene preinstalado. Esto está relacionado con IIS y puede eliminarlo si no lo necesita.

Esto bloquea el puerto 80, lo que hace que Apache actúe de manera extraña. Puede hacer lo siguiente e intentarlo de nuevo.

  • Vaya a Inicio, escriba services.msc
  • Desplácese hacia abajo en la ventana Servicios para encontrar el Servicio de publicación World Wide Web .
  • Haga clic derecho sobre él y seleccione Detener .

Esto debería liberar el puerto 80 y reiniciar WAMP / XAMPP debería ponerlo en funcionamiento.

Hay otras formas de solucionar este problema. Consulte Hacer que WAMP funcione en Windows 10 .

Praveen Puglia
fuente
7
¿Qué sucede si no tengo el "Servicio de publicación en la World Wide Web" como servicio en la lista?
Xtremefaith
6
El nombre del servicio es W3SVC, mientras que la descripción es Servicio de publicación World Wide Web . Inicialmente pensé que no tenía el servicio porque no veía el servicio descrito al ordenar por nombre.
Jake Z
1
Sí, también tuve este problema, seguía diciéndome "Un proceso con un PID de 4 está usando el puerto 80" cuando lo verifiqué, el nombre del proceso era "Sistema". Seguí pensando que podría estropear mi PC si intentaba detener este proceso. Pero esto funcionó perfectamente. Gracias
Programador de Kebab
1
Para aquellos que usan el servidor uniforme Z (¡lo cual es genial!), Puedo confirmar que esto también funciona para ese servidor.
MisterM
1
@PraveenPuglia hum .. comentario interesante, ¡trabaja para mí! Intento eliminar el archivo "ntoskrnl.exe" es un puerto de causa 4 ... mucha búsqueda de Google dice virus ... buenos servicios para detener es el trabajo lol .. gracias hermano
KingRider
36

Resolver este problema es fácil:

  1. Abra un símbolo del sistema con privilegios de administrador
    • Busque "cmd", haga clic derecho sobre él, luego seleccione "Administrador".
  2. En el mensaje, escriba net stop W3SVCy Enter.

Ahora puede hacer clic en WAMPP y reiniciar todos los servicios. Abra su navegador y navegue hasta "localhost".

Si necesita iniciar W3SVC nuevamente,

  1. Abra un símbolo del sistema con privilegios de administrador
  2. En el mensaje, escriba net start W3SVCy Enter.
DIANGELISJ
fuente
En la versión de lanzamiento de Windows 10, aparece "Se ha producido un error del sistema 3. Se deniega el acceso".
Mike_Laird
Necesitas ser administrador. Inténtalo de nuevo.
DIANGELISJ
Sí, gracias DIANGELISJ. En Windows 10, haga clic con el botón derecho en cmd y luego en las instrucciones anteriores, luego haga clic con el botón derecho en httpd.exe y Apache volvió a funcionar. El cuadro httpd.exe es un espacio en blanco negro, pero Apache funciona.
Mike_Laird
Tuve el mismo problema en Windows 10 usando XAMPP. Después de cada reinicio, tendría que ir al panel de control de XAMPP y reinstalar e iniciar nuevamente los servicios Apache y MySQL. Ejecutar el panel de control de XAMPP como administrador parece haberlo solucionado, ¡gracias!
SharpC
esta es la respuesta correcta, todo lo que necesita hacer es cerrar IIS y luego iniciar xampp. Panel de control - Administrador - Servicios de información de Internet - "Detener" Eso es todo. Muy fácil. (Lo mismo que el anterior, solo a través de interfaces).
Elaine Ossipov
17

Encontré una manera de resolver este problema:

  1. Si también está usando Skype, desmarque el campo que indica usar los puertos 80 y 443 (Extra -> Configuración -> Avanzado -> Conexiones -> Desmarque el puerto 80 y 443)
  2. Reinicie Skype y XAMPP.

Si esto no funciona,

  1. Vaya a Inicio y escriba "services.msc"
  2. Busque "Servicio de publicación en la World Wide Web"
  3. Haga clic derecho en esa entrada, seleccione "Detener", luego reinicie XAMPP.

Si eso no funcionó y el "Servicio de publicación World Wide Web" no estaba disponible,

  1. Vaya al Panel de control, navegue hasta "Desinstalar programas", luego "Activar / desactivar funciones de Windows"
  2. Busque "Servicios de información de Internet"
  3. Haga clic en la casilla de verificación y presione "Aceptar".
  4. Reinicie, luego repita el segundo enfoque (services.msc)
Fazal
fuente
Gracias, pero la respuesta ya está respondida. Tal vez podría ayudar a alguien ese (:
Félix Desjardins
Tu respuesta no pudo ayudarme, descubrí mi propia solución. Gracias de todos modos :)
Fazal
1
¡Brillante! ¡Era solo Skype bloqueando Apache! Mi parte favorita del proceso: después de apagar los puertos 80 y 443 de Skype, tuve que salir de Skype. Apareció una advertencia que decía (parafraseado) "Si sales de Skype, no podrás usarlo". Bueno, ¡duh!
CJ Dennis
14

Puede cambiar el puerto de Apache:

  1. Vaya a C: \ xampp \ apache \ conf \ httpd.
  2. Encuentra por combinación Ctrl + F línea #Escucha 12.34.56.78:80 y cambia el 80 por el que quieras, por ejemplo 81
  3. Lo mismo con Listen 80 cambia a 81
  4. Lo mismo con ServerName localhost: 80 cambia a 81.
  5. Vaya a C: \ xampp \ apache \ conf \ extra \ httpd-vhosts y cambie 80 a 81

NombreVirtualHost *: 80 aquí

VirtualHost *: 80 y aquí (dos veces)

  1. Reiniciar Apache

Para ingresar a su página web, escriba: http: // localhost: 81 / index.html

Experimentador
fuente
Recomendaré
5
  1. Presione Windows+ Ry escriba regedit.

  2. Ir

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    Cambie el valor de Starta 4, lo que significa deshabilitado.

  3. Reinicie su computadora.

Do Nhu Vy
fuente
1
La "actualización de noviembre" de Windows 10 causó mi problema; todo había funcionado antes en la versión anterior de Win 10. No tenía W3svc ejecutándose ni Skype. ¡Esta solución funcionó! ¡Gracias @Do Nhu Vy!
Jim M
5

También solucioné este problema con el mío, pero tuve que cambiar un par de cosas. Necesito que en mi máquina con Windows 10 mantenga mi entorno de desarrollo de C # y Visual Studio, por lo que no quería jugar con ningún servicio. Todo lo que tenía que hacer era descargar la última versión de XAMPP y cambiar los puertos de escucha por 80 y 443. Estaban ubicados en dos archivos:

C:\xampp\apache\conf\httpd.conf

Listen 122
ServerName localhost:122

C:\xampp\apache\conf\extra\httpd-ssl.conf

Listen 444

Cambiar lo anterior del puerto 80 a 122 y 443 a 444 me permitió ejecutar Apache y servir páginas mientras mantenía todo lo demás igual para mi ASP.NET desarrollo . Espero que esto ayude a alguien. Al final, esta es una solución muy simple.

Dirija su navegador a: http://localhost:122

Paul Carlton
fuente
Creo que esta es la forma más fácil y sencilla. Muchas gracias!
Diptangsu Goswami
+1 porque cerrar .NET Services definitivamente no es una opción para mí. ¡Por supuesto que quiero ejecutar IIS y Apache al mismo tiempo!
Alan
4

Tengo el mismo problema, pero las soluciones anteriores nos llevan a cambiar el puerto en lugar de obtener la solución exacta. Busqué sobre los puertos de protocolos HTTP y HTTPS simples y encontré.

Si ya se está ejecutando otra aplicación, los puertos HTTP o HTTPS en la máquina local, obviamente tendremos este problema solo por esos puertos que ya están en uso y en un estado ocupado .

Es por eso que después de cambiar el número de puerto estaba funcionando. Pero en lugar de cambiar el puerto en el servidor XAMPP, utilicé los siguientes métodos y me funciona.

Aquí está el siguiente paso que obtuve durante esta reparación.

  1. Error que obtuve en la aplicación XAMPP Server.

    Error del servidor XAMPP

  2. En la esquina superior hay un botón llamado Netstat . Es muy útil para buscar los puertos en ejecución en el sistema.

    Botón de Netstat

  3. Esta es la aplicación Netstat donde encontré una aplicación que ya se estaba ejecutando y usaba el número de puerto 443. En mi caso, fue vmware-hostd.exe . Puede que sea una aplicación diferente. Intente buscar el puerto 80 (HTTP) o el puerto 443 (HTTPS).

    Aplicación Netstat abierta

  4. Acabo de abrir el Administrador de tareas de Windows , seleccioné esa aplicación vmware-hostd.exe y terminé el proceso usando el botón Finalizar proceso . He eliminado ese proceso que se usaba en el puerto 443. Y esta aplicación no era necesaria en este momento.

    Abrió el administrador de tareas y eliminó esa aplicación

  5. Después de matar la aplicación en el Administrador de tareas de Windows, Apache ahora está disponible en este momento. Esta es la prueba.

    Apache trabajando


NOTA: * Si encuentra algún tipo de aplicación que se usa, los puertos HTTP o HTTPS significan el puerto 80 o el puerto 443 y la aplicación no es importante o no es vital, entonces solo cierre el proceso de esa aplicación.

De lo contrario, no es necesario seguir estos pasos. Luego, debe considerar cambiar el puerto de su aplicación XAMPP como se indica en las respuestas anteriores. *

Dipak Bari
fuente
4

Intenté todo lo que aparece en las respuestas aquí, pero ninguno funcionó.

Luego, todo lo que hice fue reiniciar XAMPP con derechos de administrador mediante:

Menú Inicio - haga clic derecho en XAMPP - seleccione Ejecutar como administrador

Funcionó. Es así de simple.

Desinstalé los servicios IIS, detuve los servicios WWW, cambié los puertos a 80, bloqueé todas las conexiones apache y mysql del firewall de Windows 10, ¡pero sí, todavía funciona!

Tarik
fuente
2

Después de jugar, realmente todo lo que tienes que hacer es cambiar dos líneas en el archivo httpd.conf :

Cambie "Escuchar 80" a "Escuchar 122" (o cualquier otra cosa que desee)

y

"ServerName Localhost: 80" a "Localhost: 122" (o el puerto que cambió anteriormente)

Entonces todo debería dispararse: P

Msquared86
fuente
2

Parece que hay muchas opciones. La respuesta depende de su instalación de Windows. Esta es mi experiencia al tener el mismo problema en una instalación nueva de Windows 10 y solucionar el problema con el siguiente paso:

  1. Instalar Visual C ++ Redistributable
  2. Abra XAMPP y seleccione configurar en el servicio Apache
  3. Cambie el puerto 80 a 9000 o 81 o lo que quiera en el archivo httpd.conf en la líneaListen 80
  4. Cambie el puerto en httpd-ssl.conf y cambie Listen 443aListen 441
  5. Reinicie XAMPP e inicie el servicio Apache. Esto funciona para mi.

Nota : Estoy usando XAMPP versión 5.6.15 y XAMPP Control Panel versión 3.2.2.

Gujarat Santana
fuente
2
Buen truco - asegúrese de que los puertos http y https no estén en conflicto
Aaron Hudon
1
  • Vaya al menú de inicio y escriba Activar o desactivar las funciones de Windows
  • Desmarque Servicios de información de Internet
  • prensa OK
Clicia escarlata
fuente
1

En mi caso, fue un caso simple de eliminar IIS porque Windows 10 viene con IIS (Servicio de información de Internet) preinstalado, eso entra en conflicto con XAMPP porque ambos servidores intentan usar el puerto 80. Si no desea usar IIS y sigue usando XAMPP

  1. Ir a ejecutar / buscar en Windows 10
  2. Busque 'características opcionales'
  3. En esa lista, desmarque Servicio de información de Internet (IIS)

Luego reinicie .

almaruf
fuente
1

Descubrí que ejecutar apache_start en me dio el error exacto y en qué línea estaba.

Mi error fue que dejé un espacio entre localhost: y el puerto.

Aaron Rabinowitz
fuente
¿Qué es "ejecutar apache_start en"? Por ejemplo, ¿falta una palabra?
Peter Mortensen
Copiar y pegar funciona mejor que escribir (a menos que, por supuesto, se utilice GNOME ; evite GNOME a toda costa).
Peter Mortensen
1

El servicio de publicación World Wide Web no fue el único responsable en mi caso.

Tengo IIS instalado, así que tuve que detener todo el servicio HTTP.

Estos son los comandos que he ejecutado en CMD (como administrador):

net stop W3SVC
net stop http
Ceparu Stefan
fuente
1

Si ha instalado SQL Server , algunos de sus servicios pueden bloquear el puerto que necesita XAMPP. Resolví mi problema desactivando SQL Server Reporting Services y ahora Apache se inicia sin ningún problema.

Simplemente abra services.msc, desplácese hacia abajo y busque SQL Server Reporting Services . Haga clic derecho sobre él y haga clic Stop.

Peyman.H
fuente
0

En realidad, IIS (Microsoft, .NET, etc.) está instalado por defecto.

  • Ir al panel de control
  • Activar o desactivar las características de windows...
  • En (IIS) Internet Information Services, desmarque los servicios de World Wide Web (WWWS).
  • Haga clic en Aceptar.

Esta podría ser una solución permanente. :)

Xyren Poh
fuente
0

Este consejo fue genial. Tuve el mismo problema, pero mi solución era diferente, porque era tan estúpido, que cambié el nombre del directorio donde se encontraba XAMPP y, como había instalado muchos otros programas, no pude volver a nombrarlo.

En mi caso, estaba el directorio original C: \ Programas \ Xampp y lo renombré a C: \ PROGRAMS_ \ Xampp y ese fue el error.

La solución fue encontrar todas las referencias en C: \ Programas y renombrarlas C: \ PROGRAMS_ en el directorio XAMPP, porque por alguna razón durante la instalación escribe rutas absolutas, no relativas. Por supuesto, también hay algunas referencias en el registro.

Mayk
fuente
Este parece ser un caso muy específico y no parece corresponder con el escenario de la pregunta.
Dakab
Sí, estoy de acuerdo, pero creo que puede ayudar a alguien, porque estaba enfrentando la misma situación (tenía una ventana nueva 10) y el error era el mismo, así que tal vez este no sea exactamente el mismo escenario, pero creo que a alguien le resultará útil. .
Mayk
0

Es simplemente una cuestión de hacer que el puerto 80 esté disponible para su servicio Apache. La forma en que resolví el problema fue:

  1. En Windows 10, haga clic derecho en el botón de inicio y seleccione Ejecutar
  2. Escriba services.msc y haga clic enOK
  3. Busque y haga clic con el botón derecho en el servicio de publicación World Wide Web
  4. Seleccionar propiedades
  5. Cambiar el valor del tipo de inicio a automático (inicio retrasado)
  6. Reinicia tu computadora.

Ahí tienes. Todo ha vuelto a la normalidad.

Rancantemos
fuente
0

¡Eso fue simple para mí!

Intente ejecutar el Panel de control de XAMPP como administrador.

Ahmad Jahanbin
fuente
0

He probado todas las soluciones anteriores. Pero no estaba funcionando de ninguna manera.

Finalmente, simplemente desinstalé XAMPP y lo volví a instalar . Entonces funcionó para mí.

Ahora puedo ejecutar el servidor en cualquier puerto (incluido el 80).

Sathish
fuente
0

Pasos:

  • Abra el panel de control XAMMP
  • Abra Apache Config, y luego seleccione el archivo de configuración Apache - xammp-
  • Busque "Port 443" y luego cámbielo a otro puerto, digamos 4433
  • Luego reinicie.
C Williams
fuente
gracias, @Peter Mortensen por editar mi respuesta :)
C Williams
0

Compruebe si su instalación de PHP funciona.

Compruebe qué archivo php.ini está ejecutando en la configuración de Apache y utilícelo para ejecutar php.exe ...

Medios de goma Telly
fuente
0

Es posible que haya actualizado su Windows a la versión 1903 (compilación del SO: 18362.239) o haya cambiado las contraseñas de usuario. A pesar de haber eliminado todos los conflictos de puertos , seguí recibiendo los mensajes descritos por el OP al comienzo de esta publicación.

Al final lo curé actualizando a XAMPP a 7.3.7. (¡Cuando se vea obligado a reinstalar, también podría actualizar al mismo tiempo!)

Pero el problema volvió a ocurrir cuando volví a cambiar la contraseña del usuario 'root'.

Los mensajes de error de la consola ocultaban el hecho de que la tabla mysql.user estaba dañada.

Verifique el archivo mysql_error.log . Si ve un error fatal: No se pueden abrir y bloquear las tablas de privilegios: el índice de la tabla 'usuario' está dañado; intente repararlo , luego eche un vistazo a esto .

Mal perdedor
fuente
0

Tengo el mismo problema y lo resolví desinstalando el servidor WAMP .

Mikami
fuente