martes, 14 de septiembre de 2010

Instalación de servidor Apache HTTP


Un componente muy importante para una intranet sin duda es el servidor web, el más usado en internet es el Apache HTTP Server.

El fuente lo podemos obtener desde la página de Apache, en mi caso voy a usar el fuente de la versión 2.2.16 por ser el más reciente, básicamente se instalan igual las versiones 1.3 y 2.0, sin embargo, mi recomendación es no instalar una versión menor a la 2.0

Para iniciar la compilación lo primero que debo hacer es asegurarme que tengo en la variable PATH incluidos todos las rutas en las que se encuentran el gcc, el make y demás utilerías que normalmente se emplean para la compilación, para este caso, voy a utilizar nuevamente a Solaris 10, por lo que en el PATH debo incluir a /usr/sfw/bin, /usr/xpg4/bin y /usr/ccs/bin

[solaris10:~]$ echo $PATH

/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ccs/bin

Ahora si ya estamos listos para compilar.

Lo primero es descomprimir el archivo http-2.2.16.tar.gz en un subdirectorio que cree para esta tarea dentro de mi home directory

[solaris10:~/lab]$ /usr/bin/gtar xvzf ../httpd-2.2.16.tar.gz

Nota: En Solaris hay diferencias entre el comando tar (Estándar) y el gtar (GNU tar), una de ellas es que el tar estándar no tiene la capacidad de comprimir el respaldo. En el caso de las distribuciones Linux el tar utilizado es el GNU

Ya descomprimido, me cambio al nuevo directorio que se creó y procedo a configurar.

[solaris10:~/lab]$ cd httpd-2.2.16

[solaris10:~/lab/httpd-2.2.16]$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl=shared

Los parámetros con los que estoy configurando son:

--prefix: indica que el directorio en el que deseo que se instale la aplicación es /usr/local/apache2
--enable-so: esto va a activar el uso de módulos cargables, los cuales, agregan más funcionalidades al servidor HTTP, está opción es necesaria para hacer una instalación posterior de PHP (la cual, veremos posteriormente)
--enable-ssl: este parámetro nos permitirá la activación del módulo SSL, el cual, vamos a utilizar posteriormente para hacer una instalación de certificados para encriptación de páginas, nótese que estoy indicando con =shared que instale el módulo como un módulo cargable, si no le agregamos esta opción va a instalar el módulo en forma estática.
Después de configurar, procedo a compilar

[solaris10:~/lab/httpd-2.2.16]$ make

Si no aparecen errores estamos listos para instalar, al igual que la instalación anterior de alpine utilizo el sudo para adquirir privilegios de root, es completamente opcional, en su lugar se puede utilizar el comando su, solamente es necesario revisar la variable PATH antes de iniciar la instalación.

[solaris10:~/lab/httpd-2.2.16]$ sudo make install

En caso de no aparecer errores nuestro servidor HTTP está instalado y listo para operar.

Ahora sí, con la cuenta root, nos pasamos al directorio /usr/local/apache2

[root@solaris10:~] cd /usr/local/apache2

En el subdirectorio conf está el archivo de configuración httpd.conf, vamos a editarlo

[root@solaris10:apache2] vi conf/httpd.conf

Buscamos la línea que inicia con la palabra User, voy a cambiar el usuario que indica (deamon) por un usuario que previamente yo cree para que sea el usuario propietario del servicio, es la cuenta web, cuyo grupo principal también se llama web. También voy a modificar la línea que inicia con la palabra Group con web.

User web

Group web

Esta cuenta no debe tener ningún tipo de privilegio y preferentemente debe estar inactiva y con restricciones para no poder iniciar sesión, esta medida es muy recomendable ya que, en el caso que la seguridad de servidor se viera comprometida, al menos no tuviera acceso a información sensible.

Por último, procedemos a levantar el servicio por medio del comando apachectl

[root@solaris10:apache2] bin/apachectl start

Para probar, solo basta utilizar un navegador y abrir la página con la url del servidor, en mi caso http://solaris10.unixymas.com.mx
Esta página nos confirma que el HTTP opera correctamente


No hay comentarios.: