1.10. Apache 2.0

Apache en la actualidad ya ocupa el 62% del mercado de servidores web, después de subir un 2% en Junio de 2000. A pesar de este predominio el grupo de desarrolladores de Apache no se está durmiendo en los laureles y en la nueva versión, la 2.0, destaca que el servidor Apache tendrá soporte para hebras de ejecución, lo que permitirá un modelo mixto de ejecución utilizando procesos y/o hebras según se configure el servidor. El rendimiento y escalabilidad de esta nueva arquitectura serán muy superiores a los que existen en la actualidad, además de mucho más flexibles de configurar.

Otro de los detalles importantes en esta nueva versión es el soporte para el sistema operativo BeOS, que se une a la saga de Unix, con GNU/Linux a la cabeza, y a la plataforma Microsoft Windows.

Apache 2.0 están aún en fase alpha, es decir, que aún es impensable utilizarlo para nada más que comenzar a conocerlo. Se han liberado ya 4 alphas de Apache 2.0 y vamos a probar la última versión a la que tenemos acceso a través del CVS aunque ya se nos advierte: no tiene ni que compilar. Esperemos que haya suerte y podamos jugar un poco con Apache 2.0.

Las mejoras en Apache 2.0 las podemos ver en el plan del proyecto en la referencia [7]. Vemos que en la versión 3.0, aún muy muy lejana, se tiene previsto dar soporte para HTTP-NG, algo que podría ser un nuevo hito para la era de los servidores web.

Las pruebas que vamos a realizar son con el fichero apache-2.0_20000702041230.tar.gz que como veremos a posteriori, es la versión alpha 5 de Apache 2.0.

Lo primero a destacar es el tamaño del "tar.gz". Más de 2 Mb de código fuente y documentación. Con cuidado vamos leyendo los ficheros "README" de los desarrolladores para no perder tiempo y siguiendo sus indicacione nos vamos al directorio "src" y leemos "README.MPM". Bién, como siempre, parece que con "configure" vamos a poder preparar los Makefiles y compilar sin muchos problemas. Vamos con ello.

El lector podrá observar que durante el make se utiliza para compilar con el gcc el flag -lpthread. Sí, esta usando Posix Threads para compilar. Era verdad lo el uso de hebras en esta nueva versión ;-D. También se ve muchos que se compilan muchos fuentes con "xml" como parte de sus nombres. XML se está convirtiendo en el estándar para el intercambio de datos entre aplicaciones y Apache parece que algo ha adoptado.

Bueno pues no hemos tenido ningún problema para compilar Apache 2.0. Sabíamos que estos chicos de Apache eran precavidos cuando decían que podría ni compilar. Seguimos con la investigación. Y lo primero será intentar arrancarlo. Para ello vamos a arriesgarnos a instalarlo bajo "/usr/local".

Parece que hace uso de los directorios:

Vamos a probar a arrancar el servidor de web. En la máquina está corriendo el servidor 1.3.9 por lo que puede haber algún conflicto con los puertos.

/usr/local/bin/httpd

Parece que ha arrancado correctamente, con un par de avisos sobre la configuración, la cual no ha sido tocada para nada. Ha sido sencillo llegar a tener corriendo Apache 2.0. Vamos a seguir profundizando. Y para ello lo mejor que podemos hacer es irnos al directorio de configuración para ver al menos en que puerto tenemos lanzado el servidor de web Apache 2.0 y poder acceder a él. Mirando con más detenimiento los ficheros de logs, /usr/local/logs, en el fichero error_log se nos informa de que no se ha podido arrancar de forma correcta porque el puerto ya estaba en uso. Vamos a cambiarlo en el fichero de configuración.

cd /usr/local/conf/

En este directorio nos encontramos 4 ficheros:

Tras modificar el puerto al 8080 y cambiar el grupo bajo el que se ejecuta el servidor de web, en nuestro caso se ha puesto webs, se ha arrancado de nuevo el servidor y esta vez no ha habido ningún problema. Con "tail /usr/local/logs/error_log" podemos ver el mensaje:

[Sun Jul 02 11:45:22 2000] [notice] Apache/2.0a5-dev (Unix) configured -- resuming normal operations
Bueno pues ya tenemos el Apache 2.0 alpha 5 funcionando. Vamos a acceder a la documentación del servidor a través de la URL http://localhost:8080/manual/index.html.

Bueno, quedarían por analizar muchos aspectos de este nueva versión de Apache pero de momento vamos a pararnos aquí. Hemos logrado los objetivos principales: obtener Apache 2.0, compilarlo, instalarlo y configurarlo, asi como ver como afecta la nueva arquitectura de procesos y hebras al funcionamiento de Apache.