y sus módulos
y sus módulos
y sus módulos
y sus módulos
Administración de Web Sites
Màster d’Enginyeria del Software
Desenvolupament d’aplicacions sobre Internet
Fundació Politècnica de Catalunya
Jaume Moral Ros
Albert Obiols Vives
Instalación de Apache y sus módulos
En nuestras prácticas utilizaremos el servidor Apache, que es actualmente el servidor web más utilizado en Internet. Apache es un servidor distribuido bajo licencia OpenSource, lo que quiere decir que tenemos el código fuente a nuestra disposición libremente y de forma gratuita. La parte negativa es que para instalarlo en nuestro sistema, deberemos compilarlo. En el web de la Apache Foundation (www.apache.org) podemos encontrar distribuciones binarias para algunas plataformas, pero la forma más recomendable de personalizarlo para nuestras necesidades es compilándolo.
En nuestro curso, no sólo instalaremos Apache, sino también otros paquetes y módulos relacionados. Concretamente, estos serán todos los ficheros que necesitaremos en el curso. ApacheJServ-1_1_tar.gz apache_1_3_12_tar.gz mm-1.0.12.tar.gz mod_ssl-2_6_0-1_3_12_tar.gz openssl-0_9_4_tar.gz php-3_0_15_tar.gz swish-efiles_1_3_2.tar.gz search-php3.tar.gz jsdk.jar
No debemos asustarnos, pues siguiendo los pasos que explicaremos a continuación, la instalación será una tarea sencilla.
Encontraremos los ficheros necesarios en el directorio src de nuestro home directory
Para descomprimir cualquiera de estos ficheros utilizaremos el comando tar, con la siguiente sintaxis
$ tar zxvf apache_1_3_12_tar.gz
Al descomprimir cualquiera de estos ficheros, encontraremos un fichero llamado típicamente INSTALL o README en el que encontraremos los pasos a seguir para la instalación del paquete correspondiente. Si en un futuro queremos hacer una instalación en una plataforma diferente a la de las prácticas o bien hacer una instalación con otras características, deberemos leerlos atentamente. Por el momento, nos bastará con seguir paso a paso los procedimientos de instalación que detallamos a continuación. Normalmente, para instalar un paquete de este tipo, deberemos pasar por 3 etapas: 1. Configuración: consiste en tocar los ficheros de configuración para adaptar el
paquete a las características de nuestra plataforma y generar correctamente los Makefile con los que compilaremos el producto
2. Compilación: compilaremos el paquete conforme a los ficheros que hemos generado en la segunda etapa
JAUME MORAL, ALBERT OBIOLS I FUNDACIÓ POLITÈCNICA DE CATALUNYA
3. Instalación: Copiamos los ficheros binarios y otros ficheros auxiliares a su ubicación definitiva, separados del código fuente que, en caso necesario, puede borrarse.
Veremos que en la mayoría de los paquetes a instalar se repite este esquema, al cual deberemos acostumbrarnos
APACHE
Apache permite dos formas de compilación: utilizando módulos linkados estáticamente o bien dinámicamente (DSO). Esta segunda forma es la más recomendable, ya que nos permite añadir nuevas funcionalidades al servidor sin necesidad de recompilarlo, simplemente añadiendo las nuevas librerías al directorio correspondiente.
Compilaremos el apache con soporte para DSO
$./configure --prefix=$HOME/apache --enable-shared=max $ make
$ make install
Deberemos cambiar la configuración del puerto según el grupo en el fichero httpd.conf
para no entrar en conflicto con otros grupos.
$ cd $HOME/apache/config $ vi htttpd.conf
Y ya podemos ponerlo en marcha para comprobar que funciona
$ cd $HOME/apache/bin $ apachectl start
Con nuestro navegador podemos conectarnos a la dirección
http://147.83.53.181:puerto/
JAUME MORAL, ALBERT OBIOLS I FUNDACIÓ POLITÈCNICA DE CATALUNYA
Módulo de PHP3 (mod_php3)
Para instalar este módulo, iremos al directorio donde tenemos los módulos comprimidos y los descomprimiremos con el comando
$ tar zxvf nombre_fichero
Nos introduciremos en el directorio que nos haya creado para el PHP3 y ejecutaremos las siguientes instrucciones para configurar, compilar e instalar:
$ ./configure \
--with-apxs=$HOME/apache/bin/apxs --without-gd $ make
$ make install
Rearrancamos el servidor para cargar el nuevo fichero de configuración. Ahora ejecutaremos algún ejemplo para ver que realmente funciona.
Módulo de Servlets (mod_jserv)
Este módulo tiene una configuración un poco más compleja, ya que necesita las librerías incluidas con el JSDK distribuido por Sun. Estas librerías están en el directorio src, junto con el resto de paquetes.
Iremos al directorio donde tenemos los módulos comprimidos y los descomprimiremos con el comando
$ tar zxvf nombre_fichero
Para poder configurar el modulo, deberemos indicarle donde tenemos nuestro compilador de Java y nuestras clases de servlets. El compilador ya lo tenemos instalado en nuestra máquina, pero no así las librerías de servlets, que deberemos copiar a su ubicación definitiva con las siguientes instrucciones.
$ mkdir $HOME/apache/jserv
$ cp jsdk.jar $HOME/apache/jserv
Nos introduciremos en el directorio que nos haya creado para el Jserv y lo configuraremos mediante: $ ./configure \ --prefix=$HOME/apache/jserv \ --with-apxs=$HOME/apache/bin/apxs \ --with-jdk-home=/usr/local/java \ --with-JSDK=$HOME/apache/jserv/jsdk.jar \ --disable-debugging --enable-EAPI $ make $ make install
A continuación deberemos tocar a mano el fichero de configuración de Apache para que cargue este módulo. Añadiremos las siguientes líneas. Las dos primeras irán al final respectivamente de las directivas LoadModule y AddModule y la última al final del fichero
LoadModule jserv_module libexec/mod_jserv.so AddModule mod_jserv.c
Include "conf/jserv/jserv.conf"
JAUME MORAL, ALBERT OBIOLS I FUNDACIÓ POLITÈCNICA DE CATALUNYA
http://147.83.53.181:puerto/servlet/Hello
Módulo de seguridad SSL (mod_ssl)
Este módulo no es más que una interface entre Apache y las librerías OpenSSL, que son las que realmente implementan las funciones criptogáficas. Veremos como hacer una instalación conjunta con todos los elementos necesarios.
Los módulos que deberemos descomprimir serán los siguientes:
$ tar zxvf openssl-0_9_4_tar.gz $ tar zxvf mm_1.0.12.tar.gz
$ tar zxvf mod_ssl-2_6_0_1_3_12.tar.gz
El primero a compilar deberá ser el OpenSSL
$ cd openssl-0_9_4
$ sh config no-idea –fPIC $ make
$ make test
Este módulo tarda un rato en compilar, ya que el código utilizado en criptografía es bastante complejo.
El segundo paso son las librerías MM
$ cd mm_1.0.12
$ ./configure --disable-shared $ make
Seguidamente, configuraremos el módulo para que encuentre el resto del código del Apache.
$ cd mod_ssl-2.6.0-1.3.12
$ ./configure --with-apache=../apache_1.3.12
Y para terminar, en el directorio del Apache, reconfiguraremos para que incluya el
mod_ssl
$ cd ../apache_1.3.12
JAUME MORAL, ALBERT OBIOLS I FUNDACIÓ POLITÈCNICA DE CATALUNYA $ SSL_BASE=../openssl-0.9.4 $ export SSL_BASE $ EAPI_MM=../mm-1.0.12 $ export EAPI_MM Configuración $ ./configure \ --enable-module=ssl \ --prefix=$HOME/apache \ --enable-shared=ssl \ --disable-rule=SSL_COMPAT $ make
En estos momentos, tenemos ya un servidor Apache con soporte para SSL, pero antes de poder instalarlo y ejectuarlo, necesitaremos un certificado. Para nuestro curso, podemos utilizar el de pruebas, pero hay que tener en cuenta que un sistema real deberemos trabajar con un certificado también real.
Para generar el certificado se nos pedirán unos datos entre los que se incluye un password. Este password lo necesitaremos cada vez que queramos arrancar el servidor seguro, no debemos olvidarlo.
$ make certificate $ make install
Y para acabar, copiamos el fichero de configuración a su lugar correcto
$ cd apache/conf
Ahora tenemos la configuración para el SSL en el fichero htttpd.conf.default, hace falta añadirle nuestros cambios y renombrarlo como httpd.conf
$ cp httpd.conf.default httpd.conf
Ahora para arrancarlo con el SSL, nos pedira el password.
Indexador de páginas SWISH-e
Descomprimiremos los archivos con:$ tar zxvf swish-efiles_1_3_3.tar.gz $ cd src
En este caso, la configuración deberá hacerse editando el fichero Makefile. Cambiaremos la ubicación del compilador en el fichero Makefile y pondremos que
cc=/usr/bin
Con esto ya nos compilará sin problemas
$ make $ make test
Para ejecutarlo, crearemos un directorio para dejar el índice:
$ mkdir $HOME/apache/cerques
Ahora, si todo ha ido bien, tenemos que modificar el fichero de configuración user.config, indicando los directorios que queremos indexar. Cuando terminemos indexaremos nuestro Web Site mediante el comando:
$ ./swish-e -c user.config
Este proceso, se debería ejecutar de forma periódica, para tener así los índices sincronizados con el contenido de nuestro web.
JAUME MORAL, ALBERT OBIOLS I FUNDACIÓ POLITÈCNICA DE CATALUNYA
Script de Búsquedas
Nuestro buscador no está completo con SWISH-e, ya que éste simplemente genera los índices. Para realizar las búsquedas, necesitaremos un script que consulte estos índices y genere las páginas con los resultados.
En nuestro curso instalaremos el Simple Web Search, que es un cgi escrito en php3, que también tenemos en el directorio junto con el resto de ficheros que necesitaremos. Para instalarlo, deberemos crear un directorio que contenga los ficheros necesarios. Por ejemplo, dentro del directorio cgi-bin
$ cd $HOME/apache/cgi-bin $ mkdir search
Copiar los ficheros: search.conf, search.css, search.inc y search.ph3 en el directorio de las búsquedas.
Configurar este directorio en el httpd.conf para que se pueda acceder via Cgi
Cambiar en el fichero search.conf los valores necesarios para que el cgi acceda a nuestro índice.
Acceder via URL al Cgi search.php3 y probar a buscar alguna palabra de las que hemos indexado anteriormente.