solucion - XAMPP, Apache-Error: Apache se apaga inesperadamente
xampp no inicia apache windows 7 (30)
Acabo de reinstalar XAMPP y cuando intento iniciar mi servidor Apache en el Panel de control de XAMPP, ahora obtengo los siguientes errores:
16:50:25 [Apache] Status change detected: running
16:50:26 [Apache] Status change detected: stopped
16:50:26 [Apache] Error: Apache shutdown unexpectedly.
16:50:26 [Apache] This may be due to a blocked port, missing dependencies,
16:50:26 [Apache] improper privileges, a crash, or a shutdown by another method.
16:50:26 [Apache] Press the Logs button to view error logs and check
16:50:26 [Apache] the Windows Event Viewer for more clues
16:50:26 [Apache] If you need more help, copy and post this
16:50:26 [Apache] entire log window on the forums
¿Cómo puedo solucionar esto?
- descargar nuevos apachefriends xampp
- instalarlo
- eliminar toda la aplicación VPN
- abrir carpeta XAMPP ejecutar setup_xampp.bat
- ejecutar xampp-control.exe
¡Primero asegúrese de que su carpeta
/xampp
esté en la raíz! Esto es importante ya que el camino es relativo.Luego, asegúrese de ejecutar el
xampp_control.exe
con derechos de administrador.Luego cambie los archivos a continuación para evitar problemas con el puerto 80 bloqueado.
En /xampp/xampp-control.ini
se debe establecer:
[ServicePorts]
Apache=8080
ApacheSSL=4433
Busque /xampp/apache/conf/httpd.conf
y establezca:
Listen 8080
ServerName localhost:8080
Busque /xampp/apache/conf/extra/httpd-ssl.conf
y establezca:
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
Luego finalice todos los servicios y reinicie xampp-control.exe
con derechos de administrador. ¡Debería correr!
Como estoy trabajando en un entorno corporativo donde los desarrolladores enfrentan problemas de firewall, ninguna de las otras respuestas resolvió mi problema.
Como el puerto no es usado por Skype, sino por algunas otras aplicaciones internas, seguí los siguientes pasos para resolver el problema:
Paso 1 : desde el panel de control de XAMPP, debajo de Apache, haga clic en el botón Configuración y seleccione Apache (httpd.conf).
Dentro del archivo httpd.conf , de alguna manera encontré una línea que dice:
Listen 80
Y cambia el 80 en cualquier número / puerto que quieras. En mi escenario estoy usando el puerto 8080.
Listen 8080
Todavía del archivo httpd.conf , encontré otra línea que dice:
ServerName localhost:80
Cambia de 80 a 8080.
ServerName localhost:8080
Paso 2 : desde el panel de control de XAMPP, debajo de Apache, haga clic nuevamente en el botón Configuración, pero esta vez seleccione Apache ( httpd-ssl.conf ). Dentro del archivo httpd-ssl.conf , busque la línea que dice
Listen 443
Y cambia el 443 en cualquier número / puerto que desees. Usaré 4433 como el nuevo número de puerto.
Listen 4433
Aún en el archivo httpd-ssl.conf , encuentre otra línea que diga
<VirtualHost _default_:443>
ServerName localhost:443
Y cambia de 443 a 4433 .
<VirtualHost _default_:4433>
ServerName localhost:4433
Recuerde guardar los archivos httpd.conf y httpd-ssl.conf después de realizar algunos cambios. Luego reinicie el servicio de Apache.
Cuando descubrí que no había ningún proceso utilizando el puerto 80 mediante comandos
netstat -abno | find ":80"
no hubo problema de ningún proceso usando el puerto 80.
Luego ejecuté el comando (en cmd)
C:/xampp/apache/bin/httpd.exe
mostró algún error en la configuración de los hosts virtuales en el archivo httpd-vhosts.conf
, que fui editado recientemente por mí para su instalación en un entorno de WordPress PHP en el IDE de Eclipse . Así que borré esas líneas y Apache comenzó perfectamente.
El servidor Apache se ejecuta de forma predeterminada en los puertos 80, 443. Su problema es que uno o ambos puertos están ocupados. Por lo general, Skype o VMware Workstation usan estos dos puertos. Por lo tanto, asegúrese de que no se están ejecutando. La mejor manera de asegurarse de que los puertos estén libres en Windows es:
Haga clic en el botón de Windows.
En la barra de búsqueda, escriba resmon , para abrir el monitor de recursos resmon.exe .
Puertos abiertos de escucha , esto le mostrará los puertos usados abiertos.
Ahora puedes ver qué proceso está usando los puertos 80 y 443.
Luego puede detener el proceso desde CMD usando su PID (que se muestra en el monitor de recursos), o directamente desde el Administrador de tareas.
Para eliminar un proceso de CMD utilizando PID tipo
Taskkill /PID 26356 /F
, donde 26356 es el PID.
En XAMPP Control Panel V3.2.1, haga clic en el botón "NetStat" en la parte superior derecha. Asegúrese de que el puerto 80 no sea utilizado por ningún otro programa. Luego haga clic en "Shell" justo debajo de él. Ejecute este comando "Escriba ap luego TAB dos veces"
Apache_Start.bat
Verá el error exacto por el que Apache falló. Será en su mayoría probable problema de configuración de host virtual o puede ser otra cosa. Mostrará el número de línea en el que se está produciendo el error. Solo arregla ese error. Tenga en cuenta que en RootDocument un final / también puede ser una fuente de error. Elimine cualquier "/" al final.
Para más detalles, conteste aquí.
En mi caso, este problema se debió a un intento de descargar otro producto de bitnami, como WordPress . Eso es común cuando instalamos WordPress a través de XAMPP. Se coloca en el directorio xampp/app
que se puede acceder desde la página de inicio de la aplicación XAMPP.
Como solución, eliminé el WordPress instalado por defecto del directorio xampp
y lo instalé manualmente en la carpeta htdocs
de WordPress descargándolo y extrayendo los archivos zip en la carpeta htdoc
. También debe reiniciar XAMPP o puede que el sistema después de desinstalar / eliminar el WordPress predeterminado . Todo está bien para mí ahora.
En mi caso, esto ocurrió después de instalar el servidor SQL y la solución fue la descrita en esta respuesta.
Xampp: no se puede iniciar Apache después de instalar SQL Server y Visual Studio
así que simplemente tuve que deshabilitar el servicio "SQL Server Reporting Services" de los servicios de Windows
En primer lugar, debe verificar que no tenga un exceso de hosts virtuales en su archivo httpd-vhosts. Me refiero a la siguiente regla simple: 1 proyecto = 1 host virtual en el archivo de configuración. De lo contrario, se enfrentará con el error, incluso si cambia los puertos, etc.
Este error se produce porque el puerto, que está asignado para Apache, es usado por otro programa. Para verificar la aplicación que usa el puerto, que asignamos para Apache, puede tenerlo haciendo clic en,
Botón de Netstat .
Este es el archivo de Netstat,
Al principio, he asignado el puerto 8080 para Apache, y recientemente instalé Oracle DB.TNSLSNR.exe ahora ha usado el puerto 8080.
Entonces, al mirar este archivo podemos elegir un puerto que no esté en conflicto con otras aplicaciones. En mi caso, el puerto 8060 no está en conflicto con ninguna aplicación. Seleccionando eso podemos cambiar el archivo httpd.conf (panel de control de XAMPP -> Config ) como se mencionó anteriormente.
Esto sucedió debido a que el puerto 80 predeterminado está bloqueado para Apache. Necesita cambiar el puerto o hacer que el puerto sea accesible.
Vaya al archivo de configuración de Apache (httpd.conf) en la instalación de Apache.
Encuentra estas líneas:
#
Escuchar 192.168.1.2:80
Escuchar 80
#
Aquí 192.168.1.2 es mi dirección IP privada. Cámbialo según el tuyo.
Cambiar como abajo
Escuchar 192.168.1.2:8081
Escuchar 8081
Ahora, cuando accede a localhost, debe agregar el puerto explícitamente como http://localhost:8081/ ...
Intenté ejecutar httpd.exe en cmd y obtuve el error de error de sintaxis en httpd-vhosts.conf. Revisé el archivo y encontré lo que está mal y está funcionando bien ahora.
Por lo tanto, si se enfrenta a este error, puede ser debido a httpd-vhosts o cualquier otro archivo.
Intente ejecutar el programa a través de cmd y obtendrá los detalles del error y la línea donde se encuentra el error de sintaxis.
La mejor de las suertes
La mejor solución para el usuario de Windows es:
- Abra netstat (desde el PANEL DE CONTROL XAMPP)
- Encuentra el PID del proceso que usa el puerto 80.
- Abrir CMD con Administrativo.
- Ejecute
taskkill /pid PID
(en lugar de PID use pid u encontrado desde netstat)
Heyy disfruta de lo que has hecho ...
Lo simple que puede hacer es verificar si Skype o VMware está instalado en su máquina o no.
Skype usa los puertos 80 y 443 como un puerto adicional para las conexiones entrantes. Para cambiar el número de puerto en Skype, vaya a
Herramientas> Opciones de conexión> Conexión
en la ventana de skype. Ahora cambie el número de puerto 80 predeterminado a algo diferente.
VMware Workstation usa el puerto 443 para compartir. Para cambiar esto, abre VMware Workstation y ve a
Editar> Preferencias> Vms compartidos
- Haga clic en el botón "Cambiar configuración".
- Luego haga clic en "Deshabilitar compartir"
- A continuación, cambie el número de puerto https que se está utilizando (443)
- A continuación, puede hacer clic en el botón "Habilitar compartir"
Eso es todo lo que tienes que hacer. Reinicie XAMPP y ejecute el servidor Apache.
Mejor solución
abra el panel de control de XAMPP, haga clic en config para Apache, luego haga clic en Apache (httpd.config) .now en el editor de texto. ctrl + f -> busque "Listen 80" y reemplácelo con "Listen 8079" sin las citas :) pero ahora debe usarlo de esta manera http://localhost:8079/
PD, intenté cambiar la configuración del puerto para skype, deteniendo el servicio de agente de implementación web que no pude encontrar en Windows 10, cmd -> net stop http y otros métodos, pero nada funcionó excepto esto.
Mi problema fue que en httpd.conf las entradas DocumentRoot
y <Directory>
apuntaban a carpetas no existentes.
Por ejemplo, el httpd.conf ''original'' tenía las siguientes entradas:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Si ha instalado en C: / xampp, entonces necesita cambiar esas entradas para que coincidan, es decir,
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
Para mí, el servicio de publicación en todo el mundo estaba usando el puerto 80. Maté esto ejecutando el siguiente comando en cmd:
net stop http
Después de eso, XAMPP ejecutó Apache sin ningún problema.
Para mí, este problema comenzó cuando alojé una conexión VPN en mi computadora con Windows 8.
Simplemente eliminando la conexión del "Panel de control / Red e Internet / Conexiones de red" se solucionó el problema.
Parece que nadie ha respondido sobre la ejecución de xampp_start.exe.
Hice todas las respuestas anteriores pero no solucioné mi problema. Descubrí que ejecutar xampp_start.exe le dará una información detallada sobre el problema.
Esto fue lo que veo en mi final:
Como puede ver, estaba teniendo un problema de ruta o xampp está apuntando a una carpeta que no existe.
Recibí exactamente el mismo mensaje de error que el OP, pero ninguna de las respuestas existentes resolvió mi problema. Muchas de las respuestas tratan con conflictos en el puerto 80, que sabía que no tenía, ya que hace poco había respondido localhost en el puerto 80.
Resulta que había cambiado inadvertidamente ServerRoot cuando tenía la intención de cambiar DocumentRoot (estúpido, lo sé), y aunque el nuevo directorio ServerRoot existía, no contenía los archivos de configuración y otras cosas que Apache necesitaba, lo que hizo que fallara el inicio. El mensaje de error probablemente aborda este escenario con la frase '' dependencias faltantes ''.
En mi sistema Windows, configurando ServerRoot de nuevo en C: / XAMPP / apache resolvió el problema.
Resolví el problema con la detención del servicio "Servicio de agente de implementación web". Abra: Sistema -> Administración de equipos -> Servicios -> Servicio de agente de implementación web . Detenga este servicio e inicie XAMPP funciona. Creo que este es un servicio de MS Webmatrix.
(Alemán: Systemsteuerung -> System und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst )
Si estás utilizando Windows 7. Busque IIS en la búsqueda de Windows (haga clic en el ícono de la Ventana en la parte inferior izquierda y escriba donde dice ''Buscar programa y archivos'').
Abrir IIS (Internet Information Service) .
En el lado derecho en el panel de acciones. Haga clic en Detener.
Nota: El enlace de parada se desvanece en la captura de pantalla. Como lo he parado. ¡Problema resuelto!
Sigue estos pasos:
- Abra su panel de control XAMPP y luego haga clic en su "Configuración"
Elija "Apache (httpd.conf)", busque este código a continuación y cámbielo por este:
#Cambie esto para escuchar en direcciones IP específicas como se muestra a continuación
#para evitar que Apache llegue a todas las direcciones IP enlazadas.
#Listen 0.0.0.0:80
#Escuchar [::]: 80
Listen 80
# Compatibilidad con objetos compartidos dinámicos (DSO)
- Guárdalo ( Ctrl + S )
- Después de eso, vuelva al panel de control de XAMPP y haga clic en su configuración nuevamente.
- Elija "Apache (httpd-ssl.conf)", encuentre este código a continuación y vuelva a cambiarlo:
# Nota: las configuraciones que utilizan IPv6 pero no las direcciones asignadas de IPv4 necesitan dos
# Listen directives: "Listen [::]: 443" and "Listen 0.0.0.0:443"
#
#Listen 0.0.0.0:443
#Escuchar [::]: 443
Listen 443
- Guárdalo ( Ctrl + S )
- Luego, haga clic en la "configuración" (nota: sobre el netstat) y haga clic en "configuración de puerto y servicio".
- Cambie "Puerto principal" a 8080 y "Puerto SSL" a 4433, luego guárdelo.
- Finalmente, vaya al "panel de control" -> "Programas y características" -> "Activar o desactivar Windows".
- Desmarque sus "Servicios de información de Internet" y luego haga clic en Aceptar.
Simplemente espere y su computadora / computadora portátil se reiniciará automáticamente e intente abrir su panel de control XAMPP nuevamente, y luego inicie su Apache.
Skype abierto.
Herramientas -> Opciones -> Avanzadas -> Conexión.
Deshabilite " Usar los puertos 80 y 443 para alternativas para conexiones entrantes "
Cerrar sesión y cerrar todas las ventanas de Skype. Intenta reiniciar tu Apache.
Tenga en cuenta que siempre que cambie los puertos predeterminados, su navegador no lo sabrá. 80
y 443
parecen ser estándar de alguna manera, así que, por ejemplo, si cambia 80
a 8080
, tendrá que acceder a sus sitios web de esta manera:
localhost:8080/path_to_your_website.php
Tuve el mismo problema (en Windows 8.1), pero lo solucioné simplemente extrayendo a C:/
lugar de C:/somefolder
como lo hice al principio. Entonces, la ruta al panel de control, por ejemplo, ahora es C:/xampp/xampp-control.exe
Tuve el mismo problema hace algún tiempo. Tenía una computadora portátil vieja, en la que casi todos los puertos estaban bloqueados o funcionaban mal. Así es como lo hice.
Abra el panel de control de XAMPP.
Haga clic en Config.
Luego, vaya al archivo httpd.conf de Apache . Ábrelo con un editor de texto.
Busque "80" (Haga Ctrl + F y búsquelos todos. Reemplácelo con 8080 o 4040 o 4000 ).
Guarda el archivo. Y reinicie XAMPP.
Funcionó bien para mí, y espero que también te ayude.
Tuve el mismo problema, y resulta que olvidé ejecutar setup_xampp.bat
(versión portátil).
Una cosa que puede hacer es detener los servicios en el puerto 80 emitiendo
net stop http
en un cmd. Se le preguntará si está seguro de que desea detener esos servicios. Descubrí que tenía algunos servicios que no estaba usando y los inhabilité.
Para ver quién más está usando el puerto 80, escriba un cmd
netstat -abno
Supongo que desea ejecutar Apache en el puerto 80. Si este es el caso y desea mantener los servicios conflictivos, deberá asociarlos a un nuevo puerto.
Si el problema no es un puerto ocupado, también puede intentar lo siguiente: seleccione "mostrar información de depuración" en el panel de configuración de XAMPP. Al iniciar Apache se le mostrará algo como "Ejecutar" c: / xampp / apache / bin / httpd.exe ". Si ejecuta eso
c:/xampp/apache/bin/httpd.exe
en un cmd obtendrá más información (una vez, por ejemplo, tuve algún problema con mi archivo httpd.conf).
Relacionado: ¿Cómo libero mi puerto 80 en localhost Windows? y Apache no se ejecutará en xampp
Una de las causas podría ser que no esté ejecutando el Panel de control de XAMPP como administrador.