Si bien Windows incluye IIS (Internet Information Server) muchos desarrolladores preferimos utilizar Apache como servidor Web HTTP. Incluso muchas veces esto es beneficioso cuando desarrollamos en .NET pero también en PHP, o cualquier otro lenguaje Web, ya que de esta forma con IIS ejecutaremos todo lo que es .NET (c#, vb, etc) y con Apache sumamos a nuestro PC con Windows la posibilidad de correr también PHP sin complicar la configuración del IIS.
Descargar Apache 2.2 para Windows
Lo primero que debemos hacer es descargar la última versión disponible de Apache 2.2, lo hacemos desde la url http://httpd.apache.org/download.cgi, en este momento la última versión es Apache 2.2.14 pero cualquier 2.2 e incluso la 2 se instala de forma similar. Como obviamente no nos interesan los fuentes ni la versión para Linux descargamos Win32 Binary including OpenSSL 0.9.8k (MSI Installer): apache_2.2.14-win32-x86-openssl-0.9.8k.msi que incluye también soporte para SSL, puede sernos útil más adelante.
Luego de descargado, como es un MSI instalador de Windows, realizamos la instalación, utilizaremos la opción personalizada para tener más control, pero no se asusten, es muy sencilla de seguir.
Instalar Apache 2.2 en Windows 7
Solo debemos tener en cuenta de configurar algunos datos. En primer lugar la información del servidor, indicando dominio, nombre del servidor, email del administrador, y si vamos a instalar Apache para todos los usuarios de nuestro Windows o solo el actual.
En mi caso utilice localhost, como nombre de servidor y aconsejo mantengan el mismo.
Carpeta de Instalación de nuestro servidor Web
Otro punto importante es que, y donde instalar, seleccionamos los módulos a instalar y prestamos atención en la carpeta donde lo haremos, ya que debemos cambiar la sugerida “Archivos de Programa” por c:\appserv\Apache2.2. Prefiero cambiarlo para tener todo lo referente a nuestro servidor en c:\appserv de forma que quede más a mano.
![]()
Eso es todo, terminamos con siguiente, y finalizar. Ya estaría instalado en nuestro PC el Servidor Web con Apache 2.2.
Verificando la Instalación de Apache 2.2
Vamos a verificar que todo funcione bien, para esto vamos a entrar a la consola de Símbolo de Sistema (Inicio, Todos los Programas, Accesorios, Símbolo del Sistema), teniendo en cuenta de Ejecutarlo como Administrador (botón derecho Ejecutar como Administrador, en el icono de Símbolo de Sistema).

En la consola de sistema, debemos movernos a la carpeta donde está el ejecutable de Apache, esto lo hacemos con: cd c:\appserv\Apache2.2\bin y presionamos enter.
Para aseguramos de estar en la carpeta correcta, veremos que el prompt del símbolo de sistema dice: c:\appserv\Apache2.2\bin> y el cursor espera por nuestra orden.
En ese punto escribimos: httpd.exe -k install y presionamos enter, debería aparecer un mensaje similar al de la imagen con el texto “… Apache 2.2: Service is already installed.”, que indica justamente eso, que Apache esta instalado.
Monitor de Apache 2.2
Otra forma de verificar que todo esté bien es utilizar el Monitor de Apache Server, para ejecutarlo vamos a: Inicio, Todos los Programas, Apache HTTP Server 2.2, y seleccionamos Monitor Apache Servers. Puede suceder que ya este ejecutando, en ese caso nos mostrará un mensaje avisándonos.
El Monitor de Apache estará disponible en los Iconos del Sistema (junto a la hora), podemos maximizarlo y ejecutar opciones como: Stop, para detener el servidor, Start, para volver a ejecutarlo, Restart, para reiniciarlo. Si logramos detenerlo y comenzar sin errores, es otra forma de probar que todo vaya bien.
En caso de problemas, en c:\appserv\Apache2.2\logs hay un archivo error.log que contiene la lista de sucesos, y podemos verlo con el bloc de notas, o cualquier editor, de forma de enterarnos y depurar cualquier problema en el arranque y ejecución de Apache.
Para verificar el funcionamiento del servidor en nuestro navegador, entramos a la URL: http://localhost nos mostraría una página web con el mensaje “It works!“. Este mensaje corresponde al archivo index.html que se encuentra en la carpeta c:\appserv\Apache2.2\htdocs, sería está la raíz por defecto de nuestro servidor, esa carpeta en nuestro disco es lo mismo y corresponde a lo que vemos en localhost usando nuestro navegador.
Personalizar Configuración de Apache 2.2
Todo funciona bien, pero en algunos casos es necesario modificar y personalizar el funcionamiento de Apache, para esto vamos a editar con cualquier editor, el archivo de configuración llamado httpd.conf que se encuentra en c:\appserv\Apache2.2\conf
Listen, nos permite definir una IP y/o puerto que “escuchara” nuestro servidor, de forma que al digitar esa IP y puerto en nuestro navegador veamos el contenido web. Por defecto, en httpd.conf tenemos una línea que dice:
Listen 80
esto indica que usará la ip por defecto, y el puerto 80, también por defecto, por tanto funcionará si llamamos a http://127.0.0.1
En algunos casos, el puerto 80 lo utilizamos para otra finalidad, por ejemplo para correr páginas ASP.net de Visual Studio con IIS. En ese caso, podemos utilizar con Apache otro puerto, por ejemplo el 8080, para esto debemos indicar está linea:
Listen 127.0.0.1:8080
de esa forma le indicamos que debe escuchar la IP 127.0.0.1 pero puerto 8080. En el navegador debemos llamar a nuestras páginas con la url http://127.0.0.1:8080, dejando libre el puerto 80 para otras funciones u otro servidor.
ServerName, nos permite definir el nombre del servidor y un puerto determinado. Si seguimos el tutorial la línea que veremos seguramente es:
ServerName localhost:80
ya que habíamos indicado en la instalación, como nombre de servidor localhost. En nuestro navegador, además de utilizar la IP, podremos de esta forma utilizar http://localhost:80 o bien solo http://localhost ya que el puerto 80 lo toma por defecto.
Como hicimos con la IP, si queremos reservar el puerto 80 para otras funciones, podemos indicar otro puerto para Apache, de la siguiente forma:
ServerName localhost:8080
obviamente podríamos usar otro nombre diferente a localhost o bien otro puerto diferente a 80 y 8080 en los ejemplos, pero estos son los más comunes.
DocumentRoot, nos permite indicar la carpeta en nuestro duro que funcionará como raíz del servidor Web. Habíamos comentado que la página de ejemplo está en c:\appserv\Apache2.2\htdocs\index.html esto quiere decir que la configuración está definida como:
DocumentRoot “C:/appserv/Apache2.2/htdocs”
en mi caso, me gusta quitar de adentro de la carpeta de Apache los archivos de mis sitios, por ejemplo si quiero que estén en c:\appserv\www modificaría la linea por:
DocumentRoot “C:/appserv/www”
esto no modifica que desde nuestro navegador sigamos usando http://localhost, la configuración de DocumentRoot solo cambia la carpeta en disco en el servidor, no en el navegador.
Con esto tenemos para comenzar a montar un servidor web en nuestro PC con Windows 7, pero de la misma forma podemos hacerlo en Windows Xp y Vista, en el próximo artículo veremos como Instalar PHP5.
Artículos relacionados:
- Instalar PHP 5 en Windows 7 con Apache
- Instalar IIS en Windows 7
- Instalar Visual Basic 6 en Windows 7
- Con o sin www redirección 301



[...] que tenemos Instalado y funcionando nuestro Apache 2.2 es muy sencillo Instalar y configurar PHP 5 en nuestro PC con Windows [...]
Excelente tu explicación mejor imposible.
Jorge esta versión de Apache 2.2 te permite desarrollar servelets y páginas jsp, es decir, trabajar con el ambiente java
Si, puedes desarrollar con Java, para eso debes instalar adicionalmente el Apache Tomcat
una pregunta, no logro abrir el puerto 80 a una conexion que no sea lan, segun el xampp me dice que esta abiero y segun el firewall igual, pero cuando pruebo en paginas de escaneo de puertos me dice que esta cerrada.
Xammp ?? no tiene nada que ver con este tutorial. Y lo que hemos hecho es instalar el Apache en tu PC y red local, no tendrás acceso desde Internet a menos que abras los puertos y lo accedas con una IP publica pero nunca fue mi intención y no tenia sentido entreverar con todo eso.
jejeje gracias, si asi era abriendo el puerto, pero el firewall me bloqueaba, gracias de todas formas.
Ok disculpen soy nuevo y me esta costando demasiado instalar apache para llevar a programas unos scrips que necesito… Así que por favor necesito un poco de ayuda!!! el problema que tengo es el siguiente:
Ya he instalado apache, según las indicaciones que se dan y todo funciona. Cuando llego a la parte de la personalización es que presento los errores: se deben hacer 3 cambios.
Listen “no presento problemas”.
ServerName “no presento problemas, aunque no le veo la utilidad debido a que al comienzo de esta línea ya por defecto traía un # lo que entiendo es como una línea de comentario”
DocumentRoot “al comienzo puse otro nombre, luego lo cambie por lo recomendado www, sin embargo poseo dos líneas que hacen referencia a la misma dirección
DocumentRoot "C:/appserv/Apache2.2/htdocs"
<Directory "C:/appserv/Apache2.2/htdocs">
Cambio una no funciona, cambio la otra no funciona, cambio las dos y tampoco funciona.
Aunque imagino que no es de mucha importancia ya que ese cambio solo es para que los archivos de guarden de una manera un poco mas accesible!!! Si hago los 2 cambios y dejo tal cual el 3ero, puedo parar e iniciar nuevamente el apache.
Si vas a usar virtual host la forma correcta es como la tercera, y si Apache se inicia sin errores, listo, ya con eso basta
[...] o Internet Information Services es el servidor web de Windows, si bien podemos utilizar Apache en Windows para PHP y otros lenguajes, el IIS es necesario para desarrollar en .net y también correr sitios asp o aspx [...]
Jorge tengo un problema, cada vez que edito el archivo httpd.conf y reinicio apache me aparece un mensaje de error y no me permite iniciarlo: The requested operation has failed!
El error que aparece en logs/error es este:
[Wed Mar 10 08:43:57 2010] [warn] pid file C:/appserv/Apache2.2/logs/httpd.pid overwritten — Unclean shutdown of previous Apache run?
Si regreso el archivo httdp.conf al estado anterior (antes de editar cualquier cosa) puedo volver a iniciar apache sin problemas.
Alguna idea de que pueda estar pasando?
Gracias.
Probaste reiniciando el equipo y no solo el Apache ?, el mensaje que da es como que no se detuvo completamente el apache antes de reiniciarlo. Antes de reiniciar prueba detenerlo y ejecutarlo (no con la opción reiniciar), si no va, reinicia.
El problema sigue aun despues de reiniciar el equipo…