logotipo

img_google

Apache Server

¡Ten un servidor Web en tu PC!

Antes de empezar debo decir que no soy un experto en Apache ni mucho menos, sin embargo pude instalar Apache 1.3.20 en mi Windows 2000 como un servicio, ahora puedo probar mis scripts PHP en mi casa antes de ponerlos en orbita. Si eres un Webmaster entonces esto te puede interesar.

1. Ten esto a mano

Para poder instalar Apache Server en tu Windows debes contar primero con lo siguiente:

Listo, otras dos opciones pueden ser:

Las dos anteriores pueden considerarse vitales ya que de nada te sirve tener un servidor Web en casa si es que no vas a ausar sus potencialidades, PHP y MySql sirven para probar tus accesos a bases de datos desde Web, interesante ¿no?. bueno ya que tienes todo a la mano vamos a hacer las cosas con orden.

2. Compilar e instalar Apache

Así como lo lees, para poder instalar Apache tienes que compilarlo, cuando lo descomprimas no vas a encontrar ni un install.exe o algo parecido, asi que puedes tomar este consejo o leer el original en ingles que se encuentra en el directorio \htdocs\manual\win_compiling.html  del directorio donde descomprimiste Apache. Manos a la obra

Ya sabes que debes tener Visual C++ 5, si tienes 6 mejor, bueno hay dos formas, la fácil y la menos fácil, la menos fácil tiene que ver con líneas de comando la receta esta aquí.

**** ADVERTENCIA: Es mejor que tengas Visual C++ 6, ya hay algunos problemillas con la versión 5 para compilar Apache pincha aquí para mas detalles ****

  1. Busca el archivo VCVARS32.BAT que comunmente está en el directorio \Archivos de programa\Microsoft Visual Studio\VC98\bin\ en el caso de Visual C++ 6, en el caso de Visual C++ 5 esta en \Archivos de Programa\DevStudio\VC\Bin\ o en directorio bin del lugar donde instalaste tu Visual C++, cópialo al directorio donde descomprimiste Apache 1.3.20.
  2. Abre una ventana de línea de comandos y sitúate en directorio donde descomprimiste Apache luego ve al directorio src (por ejemplo si lo descomprimiste en c:\apache1.3.20 encontes ve a c:\apache1.3.20\src\ ). ejecuta el archivo VCVARS32.BAT, una vez terminada la ejecución escribe lo siguiente:
  3. Una vez terminada la ejecución ya tienes los archivos necesarios para instalr Apache, pero aún no funciona, si intentas ejecutar el archivo apache.exe verás que te falta un dll Win9xconHook.dll, si lo buscas en el directorio de apache lo vas a encontrar pero por el momento no sirve de nada  para instalar Apache necesitas escribir lo siguientes:
  4. ServerRoot   esel directorio donde instalarás Apache por lo general solo es Apache es decir c:\Apache pero elige tú donde lo quiqres poner.
  5. Una vez que se termine la ejecución ¡listo!, ya tienes la instalación hecha, ve al directorio de instalación y ejecuta el archivo Apache.exe, al hacerlo aparece una ventana de comando y... ¡no funciona!, manda un errror de configuración en el archivo httpd.conf este el siguiente paso, si tuviste éxito hasta ahora pincha aquí, sino sigue leyendo.
Ya mencionamos la forma menos fácil de compilar e instalar Apache, la forma fácil es menos complicada pero la instalación se hace de la misma forma.
  1. En el directorio src del directorio donde descomprimiste Apache hay un archivo Apache.dsw, es un workspace de visual C++ 6, no intentes abrirlo si tienes Visual C++ 5 pincha aquí para más detalles, bueno una vez abierto solo tienes que presionar F7 esperar y esperar un poco, luego la instalación se hace de la misma manera que la receta anterior, es decir desde la línea de comandos, es importante el paso 1 de la receta anterior.

3. Pon en marcha tu Apache

Ya instalaste Apache ahora hay que configurarlo, en el directorio conf, del sitio donde instalaste Apache, hay un archivo llamado httpd.conf, haz doble clic sobre el , sugerencia: cuando lo abras, activa la casilla de verificación de "Usar siempre este programa para abrir estos archivos" y ábrelo con el bloc de notas, porque vas a editarlo un buen número de veces. Una vez abierto encontrarás el error principal, sino el único, la palabra "@@ServerRoot@@" en vez del directorio donde instalaste Apache, reemplaza cada una con la ruta correcta.

**** ATENCION: En apache el directorio c:\Apache es c:/Apache ten cuidado con los slashes ****

¡Listo!, ya tienes tu Apache, si haces doble clic sobre Apache.exe verás que no pasa nada es decir, la ventana se queda allí abierta, es porque ya esta corriendo, esta ventana puede resultar molesta, por eso Apache puede correr como un servicio de Windows NT/2000, puedes hacer lo mismo en Windows 9x/Millenium, pero esta aún en etapa experimental.

Para correr Apache como un servicio sólo debes abrir una ventana de comandos, ir al directorio donde instalaste Apache y escribir:

   apache -i -n "nombre del servicio"

Puedes poner en "nombre del servicio", el nombre que quieras como "Servidor Apache 1.3.20" por ejemplo, el nombre por defecto es sólo "Apache". puedes ver más detalles sobre esta configuración en el archivo \htdocs\manual\win_service.html del directorio donde instalaste Apache.

Si estás en Windows NT puedes ir al Panel de Control en el ícono Servicios y buscar el nombre que le pusiste al servicio Apache, y allí estará, si tienes Windows 2000  está en Panel de Control\Herramientas Administrativas\Servicios, la siguiente imagen corresponde a Windows 2000

Servicios en Wind2k

Ahora abre tu explorador, no te conectes a Internet, dale trabajar sin conexión, y escribe en la dirección localhost, y ¡voila!, aparecerá un mensaje que dice "Forbiden",  diciéndote que no tienes acceso a tu directorio root, esto se produce porque no tienes un archivo index.html, ¿donde debo poner mi archivo index.html?, eso es fácil:

  1. Abre el archivo httpd.conf y busca la variables DocumentRoot.
  2. Edítala con el valor C:/Apache/htdocs/ (fíjate en detalle de los slashes invertidos), suponiendo que tengas instalado Apache en el directorio C:\Apache y guarda el archivo.
  3. Luego busca la variable UserDir, el valor por defecto es c:/Apache/users, el uso de estas variables se explica más adelante. 
  4. Para Apache si ya lo tienes instalado como un servicio de Windows, y luego vuelve a iniciarlo, puedes hacerlo desde la ventana Servicios como se ve en la figura.
  5. Busca el archivo index.html.es en el directorio C:\Apache\htdocs y cámbiale el nombre a index.html

Con eso es suficiente, ahora vuelve a ejecutar el navegador en http://localhost y debe aparecer la página de apache. vas a tener algunos problemas con archivos de html, ya la mayoría tiene doble extensión, es decir .html.html, borra una de las extensiones y quedará solucionado.

Con esto ya tienes corriendo tu servidor Web,  yo me emocioné mucho cuando logré hacerlo, ahora falta configurar los servicios adicionales, como PHP,  CGI, JSP y ASP, o lo que prefieras, yo uso sólo PHP así que es lo único, por ahora, que te puedo enseñar a instalar.

4. Afina tu configuración

En los pasos 2 y 3 configuraste un par de variables importantes DocumentRoot y UserDir, su te beneficiará mucho.

DocumentRoot

Es el directorio raíz de tu dominio, es decir cuando escribas en el navegador www.midominio.com, Apache buscará los archivos y directorios requeridos en el directorio que le especificaste en DocumentRoot, po rlo general el valor de esta variable es c:/Apache/htdoc/, pero puedes espeificar otro, por ejemplo c:/webroot/, puede ser útil. Si usas MS FrontPage debes tener un directorio c:\Mis Documentos\My Webs\, si usas Windows NT/2000 el directorio sería C:\Documents and settings\Usuario\Mis documentos\My Webs\, puedes poner esas direcciones si quieres, pero entre comillas e invirtiendo los slashes.

UserDir

Es el directorio de usuarios que utilizará Apache. ¿Recuerdas las direcciones www.dominio.com/~usuario/?, bueno en esta variable especificarás el directorio donde Apache buscará el directorio "usuario", hoy en día casi no se usa esta forma, pero de todas formas debes especificarla. El valor común  es c:\Apache\users\, pero puedes cambiarlo si quieres.

5. Configurar PHP

PHP es un lenguaje script generador de páginas Web en la capa servidor, es decir, que es el servidor quien ejecuta los scripts, a diferencia de lenguajes como JavaScript por ejemplo, que se ejecutan en la capa cliente (el navegador), eso explica, entre otras cosas, que una instrucción tan simple como:

<% phpInfo(); %>

Se convierta en esto (prueba este script una vez que hayas configurado PHP en tu servidor).

Primero lo primero, tienes que conseguir el intérprete de PHP que puedes conseguir en PHP Net hay dos tipos de distribuciones una que viene en un comprimido(5MB) y otra que es un instalador clásico(0,7MB), de esos en los que sólo hay que pinchar "Siguiente >>", te recomiendo la primera, es más completa, contiene las extensiones de PHP. archivos de ayuda y otras cosillas.

Una vez descargada, instala la distribución, de preferencia en directorio c:\php, en el caso de la versión ZIP sólo debes descomprimirla en c:\php. Con eso ya diste un gran paso, ahora copia el archivo php.ini-dist en tu directorio Windows (c:\windows  o c:\winnt ), y renómbralo como php.ini, si utilizaste la versión de instalación no tendrás que hacer eso.

Luego hay que editar el c:\winnt\PHP.ini, reemplazando algunos parámetros, unos cuantos son de Apache, hay un apartado llamado "Paths and directories", los más importantes son:

doc_root

Es el directorio raíz de tu servidor web. Debes especificar el valor de la variable DocumentRoot de tu archivo httpd.conf.

use_dir 

Al igual que la variable anterior, debes especificar aquí el valor de la variable UserDir, de tu archivo httpd.conf

extension_dir 

Este directorio es importante, aquí especificas las ruta donde se buscarán las extensiones de PHP, un conjunto de DLL's que contienen funciones adicionales, por ejemplo el manejo de bases de datos con MySQL e Interbase, el valor aquí es el directorio C:\PHP\Extensions. Si usaste la distribución del instalador entonces no podrás usar las extensiones, porque no están incluidas.

También está la variable include_dir, pero es un directorio que no utilizaremos.

Una vez modificados los valores de las variables, ya es hora de habilitar PHP en Apache, para ello puedes agregar el siguiente código al archivo httpd.conf:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Suponiendo que tengas instalado PHP en el directorio C:\PHP. Ahora sólo debes reiniciar el servicio Apache, de la forma descrita en el paso 4 del apartado 3. Ahora puedes probar tu primer script PHP, el más simple es el siguiente:

<? phpInfo(); ?>

Lo guardas en el directorio raíz de tu servidor como info.php, y puedes ejecutarlo escribiendo http://localhost/info.php, Y verás como resultado una página con información sobre PHP.

Ahora puedes hacer una prueba interesante, dale doble clic al archivo info.php desde el explorador del Windows, y verás que Explorer no puede ejecutarlo, ¿la razón?, es que los scripts PHP no los puede ejecutar el navegador solo, necesita al servidor, y la forma de acceder al servidor es mediante http://localhost.

6. Configuración de las extensiones

Aparte de las funciones normales de PHP, también se incluyen algunas adicionales en las extensiones, como el manejo de encriptación, bases de datos, etc.. Las extensiones se encuentran el directorio C:\PHP\extensions\ y para habilitarlas hay que editar el archivo php.ini. En la sección "Dynamic Extensions" encontraremos un pequeño título llamado "Windows Extensions", hay bastantes líneas comentadas del tipo:

;extension=php_bz2.dll

Hay que quitarle el ';' y entonces la extensión quedará habilitada. Hay que tener cuidado con estas líneas, si habilitas todas habrá una sorpresa desagradable, a pesar que todas las DLL's están en directorio ..\extensions\, el problema es que no cuentas con todas las aplicaciones que PHP necesita para habilitar esa extensión, por ejemplo la librería php_interbase.dll, no funcionará, y el navegador te enviará un rosario de errores, si no tienes instalado Interbase en tu sistema.

7. Conclusiones

Todo el trabajo realizado hasta ahora va a rendir frutos, tienes instalado en tu sistema un servidor Web y lenguaje script muy poderoso, lo importante ahora es conseguir un servidor web, en Internet, que soporte PHP, te habrás dado de frente contra servidores que no soportan CGI, pero felizmente en el caso de PHP la cosa es distinta. Para más información sobre PHP y Apache puedes descargar manuales y FAQ's de sus respectivos sitios web