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.15 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.15-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:



[...] de la Instalación de Apache en Windows 7 y la Instalación de PHP 5 en Windows 7, continuamos dejando a punto nuestro servidor Web para [...]
Jorge Oyhenard desde ya mil gracias e leido tu post y la verdad es que promete mucho por tu paciencia de explicar y saberlo como hacer ,te cuento que ahún no lo e probado pero ya de mil intentos y fallidos sin solucion buscando por todos lados no pude nunca hacer funcionar el PHP EN WINDOWS7 ,te cuento que instalava Xampp 1.7.3 todo bien pero cuando escrivo el codigo PHP en Localhost y lo pruevo en el servidor pues no funciona y así probe appsserver ,wampp .y nada de nada ,pero este tuto me da animos de probarlo ya que hace casi 1 mes con este problemita espero que si tengo una duda que me la aclares haci me animare a probar este tutorial ,un abrazo desde muchisimas gracias luego comentare como me fue en mi servidor .
Me alegro que sea util Richard, luego de Instalar Apache en Windows 7, tienes este otro de Instalar PHP 5 en Windows 7 con Apache
Estoy aprendiendo a usar apache y en realidad no tengo bien en claro que cuando se va al localhost desde el navegador o URL, los archivos que muestran o se cargan son los que se configuran desde DocumentRoot del htttpd.conf “C:/appserv/www” o se cargan desde “C:/appserv/apache2.2./htdocs”
Desde el navegador siempre vas contra el server, o sea el localhost, imagina que tu estas accediendo un servidor (que por pura casualidad es la misma pc), en cambio en c:appservwww es donde tu guardas los archivos directamente o como lo harías en un FTP si fuera online, a esa carpeta accedes tu para editar esos archivos.
Si esta en c:appservwww o bien en c:appservapache2.2htdocs depende puramente de donde instalaste Apache y sobre todo cual fue la carpeta que designaste como raíz de tu servidor. Fijate en el tutorial donde indico como especificar esto.
Tengo problemas con el puerto.
Le cambié al 8080 en:
Listen 127.0.0.1:8080 y
ServerName localhost:8080
pero no me abre el index.php
probé dejándolo con el puerto 80 y no tengo problemas….
Será porque uso un Router y tengo el puerto Bloqueado?????
como puedo ver los puertos que tengo bloqueados???
y me gustaría usar los puertos 8080 u otro mas óptimos, porque tengo aplicaciones que usan el puerto 80.
Uso:
Winodws Se7en Professional
Router DLink DIR-300
Se agradece de ante mano
El router no tendría que ver en este caso ya que tu ejecutas localmente sin salir por la red, verifica el firewall de windows o lo que uses como firewall.
Hola bueno solo escribo para comentar algo en lo que tuve problema y es a la hora de decirle a apache donde sera la carpeta en la que guadaremos la paginas web, debemos de modificar el DocumentRoot con la direccion deseada pero me tambien lei en otra pagina que tambien debemos cambiar lo de <Directory" con esa misma direccion deseada, ¿esto es necesario?.
Otra cosa a la hora de indicar lo de: LoadModule php5_module yo tenia esta direccion: “C:/appserv/php 5.3.2/php5apache2_2.dll” y me marcaba error algo creo que dos argumentos asi que lo cambie por esta:LoadModule php5_module “C:/appserv/php_5.3.2/php5apache2_2.dll” es decir con guion bajo y ya no me ocasiono problemas, ¿no es aconsejable hacer carpertas en las que su nombre contenga espacio? Espero me puedan responder estas dudas porque creo que muchos podrian tener los problemas que yo tuve y no saber porque razon esta pasado. De antemano Gracias
Hola Tocayo, tengo un conflicto, obligatoriamente tengo q’ desactivar el firewall de windows, para visualizar mi contenido web desde otro sitio (tanto en mi red privada como publica).
Pregunta: que opciones o configuraciones debo realizar, para mantener activo el firewall de windows y pueda conectarme desde otro sitio sin problemas?
Gracias y Saludos,
No es necesario desactivarlo completamente, solo debes agregar una excepción para el puerto que estés utilizando o bien para el httpd o sea el ejecutable de Apache
Hola, soy nueva en esto de trabajar en local, sin embargo, en otra ocasion, use Appserv para trabajar en php y me funcionó de maravilla, pero hoy necesito instalar joomla en local y pretendo usar el Appserv que ya tengo en mi máquina.
He creado una carpeta llamada Joomla en Appserv/www/ y allí descomprimi los archivos de joomla, pero, cuando trato de entrar a la preinstalacion (de joomla) y escribo en el navegador localhost:8080/joomla no me sale nada, pareciera que carga algo, luego me dice terminado pero, la pagina sigue en blanco.
Que estoy haciendo mal? el puerto que uso es 8080, ya que el 80 esta siendo utilizado por skype.
Agradezco cualquier informacion.
verifica los errores del log y asegurate que este funcionando PHP y que joomla este bien instalado.
lo instale, y a su ves el php, pero reinicien la pc y el apache no inicializa el servidor me sale un mensaje que la operación ha fallado luego que le doy a star, busco en la carpeta de errores y me sale:
[error] [client 127.0.0.1] File does not exist: C:/appserv/Apache2.2/htdocs/favicon.ico
que puedo hacer en ese caso
Antes que todo, Muchas gracias por las explicaciones de como instalar apache y php y todo lo demas…
Estoy teniendo un problema para configurar el document root y hacer que la carpeta en vez de htdocs sea http://www... se que el problema reside en los permisos que tiene la carpeta…
Mi consulta es la siguiente, como se cambian los permisos y que permisos se supone que tiene que tener la carpeta http://www...
Disculpa las molestias…
Muchas gracias
Suerte
Saludos
Una cosa es el disco y otra la url, ten en cuenta eso, y www no lo necesitas en un servidor local, solo usa el nombre de dominio.
Maestro te agradezco infinitamente. Nadie ni mis profesores me pudieron ayudar con mis dudas y tu no solo lo explicas bien sino que es simple! Ya tengo Apache, PHP5 y ahora me voy por el de mysql. Gracias nuevamente.
Me alegro que sea útil y entendible, pasales el blog a tus maestros así aprenden
En la ultima parte creo que tambien se requiere modificar la siguiente linea del httpd.conf:
Ingresando la direccion escrita en “DocumentRoot”, ya que sino daria un Forbidden.
Desde ya gracias por el articulo, sin mas ni menos
^
^
La direccion era:
Directory “D:/Servidor Web/www”