Cómo Instalar y configurar Apache en Windows

ApacheWindows

En este tutorial vamos a ver cómo instalar Apache en Windows, de modo que puedas tener tu propio servidor, que podrás usar en producción o como parte de tu entorno de desarrollo local. Si eres un desarrollador backend LAMP o si simplemente quieres crear un proyecto web con PHP, el servidor web Apache es un componente imprescindible.

Qué es Apache

Apache es un servidor web cuyo objetivo es el de procesar las peticiones web HTTP que se reciben para devolver una respuesta tras un posible procesado por parte del sistema. Cuando accedes a la URL neoguias.com, la petición se redirige al servidor en el que está la página, que tiene instalado un servidor web que se encarga de proporcionarte una respuesta, que en realidad serán varias, ya que cada archivo que compone esta página se pide en una petición por separado.

Si por ejemplo accedes a la página index.html de cualquier web, Apache simplemente tendrá que devolver un archivo estático en formato HTML, junto con el resto de archivos del servidor a los que se haga referencia en el archivo, como pueden ser los archivos CSS, los scripts o las imágenes.

El servidor web se sitúa a modo de interfaz entre el navegador del usuario y los archivos del servidor, por lo que es posible ejecutar ciertas tareas de procesado. Cuando simplemente pides un archivo estático HTML no se ejecutará ningún tipo de proceso, pero es posible configurar Apache para que acepte y procese archivos PHP, desde donde podrás proporcionar contenido dinámico que podrías obtener de una base de datos.

Si usas una cuenta de hosting como servidor, ya no tendrás que configurar Apache en el servidor, pero lo que sí necesitarás es instalar Apache en tu entorno local para desarrollar tus proyectos, ya que el servidor o la cuenta de hosting que utilices no es el mejor lugar para ello.

Cómo instalar Apache

Existen diversos métodos de instalación de Apache. Por un lado podrías usar paquetes de aplicaciones que ya incluyen Apache, PHP, MySQL y todo lo necesario para crear tu entorno LAMP. Bastará con que descargues un instalador y lo ejecutes, ya que apenas tendrás que cambiar la configuración de tu sistema. Si prefieres esta opción. a continuación tienes una lista con los paquetes más utilizados:

De entre todas las opciones, quizás las más recomendables actualmente son Wamp o XAMPP. Las aplicaciones anteriores son una excelente opción, aunque tampoco está mal aprender a instalar y a configurar Apache manualmente, que es lo que vamos a hacer a continuación.

En caso de que tengas instalada alguna versión de Windows que incluya el servidor IIS, tendrás que desactivar este componente de Windows o desactivar sus servicios para que Apache funcione correctamente.

Apache funciona mediante peticiones TCP/IP al puerto 80, que también es utilizado por Skype, por lo que es posible que cause conflictos. Si tienes Skype en tu sistema, cierra la aplicación o desactívalo cuando uses Apache. Otra opción consiste en que configures Skype para que use otro puerto.

Una vez hayas tenido en cuenta las consideraciones anteriores, sigue estos pasos para instalar Apache:

  1. Lo primero que debes hacer es descargar Apache desde este enlace. Debes seleccionar el archivo que se corresponda con tu e tu versión de Windows, ya sea de 64bits o de 32bits.
  2. Instala también la última versión del entorno de ejecución de VC++ para Windows. Puede que ya la tengas, pero no está de más que te asegures o la reinstales por si las moscas.
  3. Abre el archivo que has descargado y copia el directorio que verás a la carpeta raíz de tu disco duro. El directorio tendrá el nombre del Apache seguido de su número de versión. Por ejemplo, en mi caso es el directorio Apache24, que contiene la versión 2.4 de Apache. Debes copiar el directorio a tu disco duro. En mi caso, Apache estará en el directorio C:/Apache24 cuando copies el archivo. En realidad puedes escoger cualquier otro directorio; hemos escogido el directorio por defecto por simplicidad.

Una vez hayas seguido estos paso, todavía tenemos que configurar Apache.

Configuración inicial de Apache

Para configurar Apache tendrás que editar el archivo conf/httpd.conf con cualquier editor de texto, como por ejemplo Notepad++. El archivo se encuentra en la carpeta conf/ del directorio en el que hemos instalado Apache, por lo que en nuestro ejemplo, editaremos el archivo C:/Apache24/conf/httpd.conf.

Durante el proceso de configuración es importante que tengas en cuenta que para separar los directorios se utiliza la barra inclinada hacia adelante / en lugar de la barra invertida \.

En caso de que hayas instalado Apache en otro directorio que no sea el directorio por defecto, lo primero que debes hacer es reemplazar el directorio por defecto que se muestra en la opción SRVROOT:

Define SRVROOT "c:/Apache24"

Si por ejemplo has instalado Apache en el directorio c:/Apache, reemplaza el valor de la opción SRVROOT de modo que quede así:

Define SRVROOT "c:/Apache"

Ahora también tendrás que asegurarte de que las opciones indicadas a continuación tengan los siguientes valores.

Configuración del servidor y del puerto

Apache debe escuchar a todas las peticiones en el puerto 80, así que busca la opción Listen y dale el siguiente valor:

Listen *:80

El nombre del servidor de la opción ServerName vendrá configurado por por defecto como www.example.com:80. Debes eliminar el comentario de esta línea y establecer localhost como nombre de servidor:

ServerName localhost:80

Configuración de la opción rewrite_module

Activa la opción mod-rewirite eliminando el comentario de la siguiente línea. Para eliminar el comentario, basta con que borres el caracter # del inicio de la línea:

LoadModule rewrite_module modules/mod_rewrite.so

De este modo activarás la reescritura de las URLs, permitiendo establecer URLs que no se correspondan con los archivos o directorio físicos de tu servidor.

Configuración del archivo .htaccess

Seguidamente busca la opción AllowOverride y establece su valor como All para poder sobrescribir la configuración de Apache mediante el archivo .htaccess:

AllowOverride All

Tendrás que cambiar esta última opción en varios bloques:

<Directory />
  AllowOverride all
  ...
</Directory>

También en este otro bloque de código:

<Directory "${SRVROOT}/cgi-bin">
  AllowOverride all
  ...
</Directory>

Y también en este otro:

<Directory "${SRVROOT}/htdocs">
  AllowOverride All
  ...
</Directory>

Cambia la carpeta raíz de Apache

Apache espera que tus archivos estén por defecto en la carpeta htdocs del directorio de Apache. Sin embargo puedes establecer cualquier otro directorio. Por ejemplo, vamos a establecer el directorio c:/web. Para ello debes editar el archivo conf/httpd.conf de Apache y modificar la opción DocumentRoot:

DocumentRoot "${SRVROOT}/web"

Debes modificar también la línea <Directory "${SRVROOT}/htdocs">, de modo que quede así:

<Directory "c:/web">

Puedes establecer cualquier otro directorio de tu elección. Por ejemplo, podrías establecer un directorio que esté en otro disco duro o una unidad externa para llevarte tus proyectos, aunque con el uso de Git ya no es necesario.

Prueba la configuración de Apache

Una vez hayas terminado de editar la configuración de Apache, abre una ventana de línea de comandos de Windows o símbolo del sistema y accede al directorio bin de Apache:

cd Apache24/bin

Ahora ejecuta el siguiente comando para probar la configuración de Apache:

httpd -t

Si se muestra Syntax OK como resultado, significará que la configuración del archivo httpd.conf es correcta.

Apache como servicio de Windows

Por último, vamos a configurar Apache como servicio de Windows, ya que es el método más sencillo de iniciar el servidor. Para ello, abre una ventana de línea de comandos con privilegios de administrador y accede al directorio bin de Apache:

cd Apache24/bin

Seguidamente, ejecuta el siguiente comando:

httpd -k install

Nota: Puedes abrir la terminal de Windows con privilegios de administrador haciendo clic en el menú de inicio, escribiendo «cmd», haciendo clic derecho en cmd.exe y haciendo clic en Ejecutar como administrador.

Ahora debes acceder a la herramienta de servicios de Windows. Puedes iniciarla de varias formas:

  • Abre el Panel del control de Windows, accede a Herramientas administrativas y haz clic en Servicios.
  • Haz clic en el menú de inicio de Windows, introduce «services.msc» y pulsa INTRO.

En la lista de servicios busca la versión de Apache que has instalado, que en nuestro caso es Apache2.4. Haz clic derecho en el servicio y luego en Propiedades. Ahora establece la opción Tipo de inicio como Automático para que Apache se inicie automáticamente cuando enciendas tu ordenador.

Alternativamente también puedes establecer el tipo de inicio en manual y ejecutar el comando net start + tu versión de Apache para iniciar Apache en cualquier momento. Por ejemplo, para iniciar la versión 2.4 de Apache tendrías que ejecutar este comando:

net start Apache2.4

Prueba el servidor con un archivo

Para probar que Apache funciona correctamente, crea un archivo llamado index.html con cualquier editor de texto y sitúalo en el directorio de archivos de Apache, ya sea el directorio c:/web, el directorio /htdocs de Apache o el que hayas configurado.

Edita el archivo index.html y copia y pega el siguiente código de un documento básico HTML, que usa la plantilla básica HTML5 que hemos visto en otro tutorial:

<html lang="es">
  <head>
      <meta charset="utf-8" />
      <meta http-equiv="x-ua-compatible" content="ie=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>Probando Apache</title>
  </head>
  <body>
    Si es esto, es que Apache funciona. It's alive... it's alive!
  </body>
</html>

Seguidamente guarda el archivo y luego accede a la URL http://localhost/ mediante cualquier navegador de tu sistema. Debería mostrarse el código HTML renderizado que hemos utilizado.

Configuración avanzada de Apache

También te podrían interesar estos otros tutoriales:

Solución de problemas

En general, la mayor parte de los problemas de Apache son fruto de haber configurado mal el archivo de configuración de Apache. Si algo no funciona, revisa de nuevo la configuración o, en caso de que sospeches, consulta la documentación de Apache. Sin embargo vamos a ver algún problema común.

Error: Acceso denegado a Apache

Si cuando intentas iniciar Apache desde la terminal se muestra el siguiente error, significa que el servicio de Apache no ha sido agregado o no está bien configurado:

Error de sistema 5.
Acceso denegado.

En este caso tendrás que probar a agregar Apache como servicio de Windows de nuevo. En caso de que esto no funcione o se muestre un error diciendo que el servicio de Apache está ya instalado, accede al editor de registro de Windows y navega hasta HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices.

Aquí debes buscar el servicio de Apache, que en el caso de la vesión 2.4 de Apache se llamará Apache2.4. Haz clic derecho en esta clave y selecciona la opción Eliminar. Seguidamente, reinicia el sistema y prueba a volver a agregar Apache como servicio.

Error: Service is already up and running

Si cuando intentas iniciar Apache se muestra un error indicando que Apache ya está funcionando, pero el servicio no funciona, puede ser que el servicio de Apache esté configurado para inicar otra versión diferente de Apache.

Al igual que en el caso del error anterior, tendrás que eliminar Apache como servicio de Windows y volverlo a agregar. En consecuencia, inicia el editor de registro de Windows y navega hasta HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices. Busca el servicio de Apache y borra la entrada de registro. Luego reinicia el equipo y vuelve a agregar Apache como servicio.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

2 comentarios en “Cómo Instalar y configurar Apache en Windows

Responder a Walter Izaga Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”