Вы находитесь на странице: 1из 7

Instalacin de Apache

Tenemos dos opciones principales para instalar Apache: podemos compilar el cdigo fuente o podemos instalarlo a partir de un paquete binario adecuado a nuestro sistema operativo.

Instalacin de Apache
Tenemos dos opciones principales para instalar Apache: podemos compilar el cdigo fuente o podemos instalarlo a partir de un paquete binario adecuado a nuestro sistema operativo.

Compilacin a partir de fuentes


Para compilar Apache a partir de cdigo fuente, debemos obtener previamente de la web de Apache la ltima versin (http://httpd.apache.org) de ste. Una vez descargado, seguiremos los siguientes pasos: Descomprimiremos el fichero que acabamos de descargar, lo cual nos crear un directorio donde estarn las fuentes del servidor. Una vez dentro de este directorio, continuaremos con los siguientes pasos: Configuraremos el cdigo para su compilacin. Para ello ejecutaremos: $ ./configure Disponemos de algunos parmetros para ajustar la compilacin de Apache. Los ms importantes son:

Una vez configurado el cdigo fuente, si no se han producido errores procederemos a compilarlo. Para ello ejecutaremos: $ make El alumno debe recordar que para compilar Apache requeriremos, como mnimo, GNU Make y GNU CC. Una vez compilado, podemos instalarlo en el directorio que hemos designado como destino en la configuracin anterior, con configure. Este paso se realiza usando uno de los objetivos que ya tiene definidos make. Concretamente lo realizaremos con: $ make install Una vez instalado en su lugar, dispondremos, dentro del subdirectorio bin del directorio de instalacin, el que hemos especificado con prefix, un programa llamado apachectl que nos permitir controlar el servidor. Para iniciar ste: $cd <directorio de instalacion>/bin $ ./apachectl start Para detenerlo: $cd <directorio de instalacion>/bin $ ./apachectl stop
Parmetro Significado

Asimismo debemos instalar los mdulos adicionales que deseemos, como por ejemplo: mod_auth_* mod_python mod_jk2. mod_perl mod_ssl php etc.

Instalacin a partir de paquetes binarios


Redhat/Fedora Las distribuciones de Redhat y Fedora incluyen desde hace tiempo el servidor Apache. En caso de tener que instalarlo el proceso es realmente simple. Debemos descargarnos del servidor correspondiente (bien de redhat.com o de fedora.us) el paquete binario de Apache (en formato RPM). Tenemos que asegurarnos de que estamos descargando la ltima versin para nuestra distribucin, ya que tanto Redhat como Fedora publican actualizaciones para subsanar errores o problemas detectados. Una vez en posesin de dicho paquete, debemos instalarlo con: rpm -ihv httpd-x.x.x.rpm En caso de que lo tuvisemos ya instalado, podremos actualizarlo mediante el comando:
rpm -Uhv httpd-x.x.x.rpm

En el caso de Fedora, al usar esta distribucin un repositorio apt podemos actualizar o instalar Apache con:
apt-get install httpd

En Debian La instalacin de Apache en Debian es realmente sencilla. Slo tenemos que ejecutar el siguiente comando:
apt-get install apache

que nos instalar Apache en la ltima versin o bien lo actualizar, si ya lo tenamos instalado.

Configuracin de Apache
Una vez instalado el servidor, llega el momento de configurarlo. Por defecto Apache incluye una configuracin mnima que arranca el servidor en el puerto TCP de servicio por defecto (el puerto 80) y sirve todos los ficheros del directorio especificado por la directiva de configuracin DocumentRoot. El fichero de configuracin de Apache se llama httpd.conf y se encuentra en el subdirectorio conf del directorio de instalacin. El fichero httpd.conf es un fichero ASCII con las directivas de configuracin de Apache.

Estructura del fichero de configuracin


El fichero httpd.conf est dividido en tres bloques fundamentales, aunque las directivas de cada bloque pueden aparecer mezcladas y desordenadas.

Dichos bloques son: Parmetros globales Directivas de funcionamiento Hosts virtuales Algunos parmetros son generales para el servidor, mientras que otros se pueden configurar de manera independiente para cada conjunto de directorios o ficheros o para un servidor virtual concreto. En estos casos, los parmetros se encuentran ubicados dentro de secciones donde se indica el mbito de aplicacin del parmetro. Las secciones ms importantes son: <Directory>: los parmetros que se encuentran dentro de esta seccin slo se aplicarn al directorio especificado y a sus subdirectorios. <DirectoryMatch>: igual que Directory, pero acepta en el nombre del directorio expresiones regulares. <Files>: los parmetros de configuracin proporcionan control de acceso de los ficheros por su nombre. <FilesMatch>: igual que Files, pero acepta expresiones regulares en el nombre del fichero. <Location>: proporciona un control de acceso de los ficheros por medio de la URL.

<LocationMatch>: igual que Location, pero acepta expresiones regulares en el nombre del fichero. <VirtualHost>: los parmetros slo se aplicarn a las peticiones que vayan dirigidas a este host (nombre de servidor, o direccin IP, o puerto TCP). <Proxy>: slo se aplican los parmetros a las peticiones de proxy (requiere, por tanto, mod proxy instalado) que coincidan con la especificacin de URL. <ProxyMatch>: igual que proxy, pero acepta expresiones regulares en la URL especificada. <IfDefine>: se aplica si al arrancar el servidor se define en la lnea de comandos un parmetro concreto, con la opcin -D. <IfModule>: se aplican los parmetros si al arrancar el servidor el mdulo especificado se encuentra cargado (con LoadModule). En caso de conflicto entre especificaciones de parmetros, el orden de precedencia es el siguiente: 1. <Directory> y .htaccess 2. <DirectoryMatch> y <Directory> 3. <Files> y <FilesMatch> 4. <Location> y <LocationMatch> Por lo que se refiere a <VirtualHost>, estas directivas siempre se aplican despus de las generales. As, un VirtualHost siempre puede sobrescribir la configuracin por defecto. Un ejemplo de configuracin sera:
<Directory /home/*/public_html> Options Indexes </Directory> <FilesMatch \.(?i:gif jpe?g png)$> Order allow,deny Deny from all </FilesMatch>.

Directivas de configuracin globales


Algunas de las directivas de configuracin jams se aplican a ninguna de las secciones antes mencionadas (directorios, etc.), sino que afectan a todo el servidor web. Las ms destacadas son: ServerRoot: especifica la ubicacin del directorio raz donde se encuentra instalado el servidor web. A partir de este directorio, encontraremos los ficheros de configuracin, etc. Si el servidor est correctamente instalado, no debera cambiarse nunca. KeepAlive: especifica si se utilizarn conexiones persistentes, para atender todas las peticiones de un usuario con la misma conexin TCP. Listen: especifica en qu puerto se atendern las peticiones. Por defecto se utiliza el puerto 80 de TCP. Tambin permite especificar qu direcciones IP se utilizarn (por si el servidor tuviese ms de una). Por defecto se utilizan todas las disponibles. LoadModule: con LoadModule podemos cargar en el servidor los mdulos adicionales que incorpora Apache. La sintaxis es: LoadModule modulo ficheromodulo Debemos tener instalado mod_so para poder usarla.

Directivas principales
Disponemos de algunas directivas que, por norma general, no suelen estar en ninguna de las secciones anteriormente mencionadas (algunas de ellas no pueden estar dentro de ninguna seccin y es obligatorio que estn en la principal), sino que se hallan en la seccin principal de configuracin. Dichas directivas son: ServerAdmin: sirve para especificar la direccin de correo electrnico del administrador. Esta direccin puede aparecer en los mensajes de error como direccin de contacto para permitir a los usuarios notificar un error al administrador. No puede estar dentro de ninguna seccin.
ServerName: especifica el nombre y el puerto TCP que el servidor utiliza para identificarse. Puede determinarse automticamente, pero es recomendable especificarlo. Si el servidor no tiene un nombre DNS, se recomienda incluir su direccin IP. No puede estar dentro de ninguna seccin. La sintaxis es: ServerName nombredireccion:puerto como en:
ServerName www.xela.ufm.edu.gt:80 ServerName 200.6.180.196:80

DocumentRoot: el directorio raz desde el que se servirn los documentos. Por defecto es el directorio htdocs, que se encuentra dentro de la carpeta de instalacin de Apache. No puede estar dentro de ninguna seccin, a excepcin de la VirtualHost. Le corresponde una seccin <Directory> en la que se establecen los parmetros de configuracin de este directorio. DirectoryIndex: especifica el fichero que se servir por defecto para cada directorio en el caso de que no se especifique ninguno en la URL. Por defecto es index.html. Es decir, si por ejemplo se pone en el navegador: www.xela.ufm.edu.gt el servidor por defecto enviar www.xela.ufm.edu.gt/index.html. Se puede especificar ms de un fichero y el orden con el que se especifica dicho nombre determinar la prioridad para decidir cul se sirve. La directiva se puede encontrar tanto fuera de cualquier seccin como dentro de una de ellas. AccessFileName: especifica el nombre de fichero de configuracin en caso de que ste sea diferente de .htaccess. Para que esta configuracin funcione, la directiva AllowOverride tiene que tener un valor adecuado. No puede estar dentro de ninguna seccin. El nombre de fichero que se especifica por defecto es el del fichero .htaccess. ErrorDocument: esta directiva establece la configuracin del servidor en caso de error. Se pueden establecer cuatro configuraciones distintas: Mostrar un texto de error. Redirigir a un fichero en el mismo directorio. Redirigir a un fichero en nuestro servidor. Redirigir a un fichero fuera de nuestro servidor. La sintaxis de la directiva es ErrorDocument cdigo_error accin. Esta directiva se puede encontrar tanto dentro de una seccin, como en la configuracin global. Por ejemplo, con:
ErrorDocument 404 /noencont.html.

En caso de no encontrarse un fichero, se mostrar el fichero noencont.html. Alias: las directivas Alias y AliasMatch nos permiten definir accesos a directorios que se encuentran fuera del DocumentRoot. La sintaxis es la siguiente: Alias url directorio. Por ejemplo:
Alias /docs /home/documentos

provocar que una peticin /home/documentos/manual

http://www.xela.ufm.edu.gt/docs/manual

se

sirva

desde

UserDir: esta directiva nos permite indicar a Apache que un subdirectorio del directorio de trabajo de los usuarios del sistema sirva para almacenar su pgina personal. Por ejemplo: UserDir publico provocar que la pgina almacenada en el directorio del usuario test, en el subdirectorio pblico, sea accesible como:
http://www.xela.ufm.edu.gt/test/indice.html

Directivas de seccin
La mayor parte de secciones de localizacin (Directory, Location, etc.) incluyen en su configuracin una serie de directivas que nos permiten controlar el acceso al contenido ubicado dentro. Dichas directivas vienen proporcionadas por el mdulo mod_access. Allow: nos permite especificar quin est autorizado a acceder al recurso. Podemos especificar direcciones IP, nombres de mquina, fragmentos del nombre o direccin e incluso por variables de la peticin. Disponemos de la palabra clave all para indicar todos los clientes. Deny: nos permite especificar a quin no dejamos acceder al recurso. Disponemos de las mismas opciones que con Allow. Order: nos permite afinar el funcionamiento de las directivas Allow y Deny. Disponemos de dos opciones: Allow,Deny. El acceso est denegado por defecto y slo podrn entrar los clientes que cumplan las especificaciones de Allow y no cumplan las de Deny. Deny,Allow. El acceso est permitido por defecto y slo podrn entrar los clientes que no cumplan las especificaciones de Deny o cumplan las de Allow.

Servidores virtuales
Apache soporta servir diversos sitios web con un slo servidor. Para ello proporciona facilidades de creacin de dominios virtuales en funcin de diversas direcciones IP o diversos nombres por IP. Apache fue uno de los primeros servidores en soportar servidores virtuales sin IP, en funcin de nombre. Esta capacidad simplifica mucho la administracin de los servidores, adems de suponer un ahorro importante de direcciones IP, normalmente escasas. Los servidores virtuales por nombre son totalmente transparentes para el cliente, con la nica posible excepcin de aquellos navegadores muy antiguos que no enven la cabecera Host: con las peticiones. Servidores virtuales por direccin IP Para atender a diversos servidores virtuales, cada uno con una direccin IP, utilizaremos la seccin de configuracin VirtualHost. Con esta seccin definiremos cada uno de los servidores con su propia configuracin y direccin IP. Un ejemplo sera el siguiente.
<VirtualHost 200.6.198.186> ServerAdmin webmaster@xela.ufm.edu.gt DocumentRoot /web/ufm ServerName www.xela.ufm.edu.gt ErrorLog /web/logs/ufm_error_log TransferLog /web/logs/ufm_access_log </VirtualHost> <VirtualHost 192.168.10.1> ServerAdmin webmaster@umesxela.edu DocumentRoot /web/umes ServerName umesxela.edu ErrorLog /web/logs/umes_error_log TransferLog /web/logs/umes_access_log </VirtualHost>

Como podemos ver, este ejemplo define dos servidores web, cada cual con una IP y un nombre diferente. Ambos tienen su propio DocumentRoot, etc. Para utilizar servidores virtuales por IP, es necesario que el sistema servidor tenga configuradas en el sistema operativo las diversas direcciones IP que hay que servir. Servidores virtuales por nombre Para atender a diversos servidores, utilizando la misma direccin IP para todos, utilizaremos la seccin VirtualHost, que nos permitir definir los parmetros de cada servidor. Si tenemos las mismas necesidades que en el ejemplo de servidores virtuales por direccin IP con una sola direccin utilizaremos la siguiente configuracin:

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@xela.ufm.edu.gt ServerName www.xela.ufm.edu.gt DocumentRoot /web/ufm ErrorLog /web/logs/ufm_error_log TransferLog /web/logs/ufm_access_log </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@umesxela.edu ServerName umesxela.edu DocumentRoot /web/umes ErrorLog /web/logs/umes_error_log TransferLog /web/logs/umes_access_log </VirtualHost>.

Podemos utilizar una direccin IP en lugar de *, lo cual nos permitira asignar un grupo de servidores virtuales por nombre a esa IP y otro grupo a otra, por ejemplo. Un uso especial de las directivas de servidores por nombre se precisa cuando nuestro servidor tiene dos direcciones IP, pero hemos asignado a las dos el mismo nombre. Por ejemplo, cuando dispone una conexin de red en la intranet y otra en Internet con el mismo nombre, caso en que podemos servir el mismo contenido de la siguiente forma:
NameVirtualHost 192.168.1.1 NameVirtualHost 172.20.30.40 <VirtualHost 192.168.1.1 172.20.30.40> DocumentRoot /www/servidor1 ServerName servidor.umes.edu ServerAlias servidor </VirtualHost>

Con esta configuracin podremos servir la misma web hacia la intranet y la Internet. Es conveniente notar el uso de un alias para el servidor que nos permite no usar dominios en la intranet. Disponemos, adems, de una especificacin de servidor virtual por defecto_default_ que nos permite atender las peticiones que no sirve ningn otro.
<VirtualHost _default_> DocumentRoot /www/defecto </VirtualHost>

Podemos usar la etiqueta _default_ con un nmero de puerto para especificar servidores por defecto diferentes para cada puerto. Apache permite adems configuraciones mucho ms complejas de servidores virtuales, especialmente tiles en casos de servidores masivos, etc. Una magnfica gua de referencia se encuentra en la web del proyecto Apache, con consejos y recetas tiles para configurar.

Вам также может понравиться