Una vez instalado Apache, sólo es necesario
configurarlo si se tienen requisitos o necesidades especiales. La
configuración de Apache puede llevarse a cabo
mediante SuSEconfig y YaST o bien editando directamente el archivo
/etc/apache2/httpd.conf.
Las opciones que puede definir en
/etc/sysconfig/apache2) son integradas en los archivos
de configuración de Apache por medio de SuSEconfig.
Las posibilidades de configuración incluidas bastan en la
mayoría de los casos. En el archivo se encuentran comentarios explicativos
sobre cada variable.
En lugar de realizar los cambios directamente en el archivo de
configuración /etc/apache2/httpd.conf, es posible
definir un archivo de configuración propio mediante las variables
APACHE_CONF_INCLUDE_FILES (por ejemplo
httpd.conf.local, que será cargado posteriormente en
el archivo de configuración principal. De este modo, los cambios
efectuados en la configuración se mantienen aunque el archivo
/etc/apache2/httpd.conf se sobreescriba al realizar una
nueva instalación.
Los módulos que han sido instalados con YaST se activan introduciendo el
nombre del módulo en la lista de la variable
APACHE_MODULES. Esta variable se encuentra en el
archivo /etc/sysconfig/apache2.
APACHE_SERVER_FLAGS permite introducir banderas
que activan y desactivan secciones determinadas del archivo de
configuración. Por ejemplo, si una sección del archivo de configuración se
encuentra dentro de
<IfDefine someflag> . . . </IfDefine>
sólo está activada si la bandera correspondiente está definida en
ACTIVE_SERVER_FLAGS: ACTIVE_SERVER_FLAGS =
someflag. De esta forma es posible activar y desactivar
amplias secciones del archivo de configuración con fines de prueba.
La edición del archivo de configuración /etc/apache2/httpd.conf
permite realizar cambios que no son posibles mediante
/etc/sysconfig/apache2. A
continuación se indican algunos de los parámetros que puede definirse. Se
explican aproximadamente en el mismo orden en el que aparecen en el
archivo.
DocumentRoot es una opción básica de configuración. Se
trata del directorio en el cual Apache aguarda
las páginas web que han de ser proporcionadas por el servidor. Este
directorio es /srv/www/htdocs para las máquinas
virtuales predeterminadas y normalmente no debe ser modificado.
Indica el periodo que el servidor espera antes de emitir la señal de tiempo agotado para una solicitud.
El número máximo de clientes para los que
Apache puede trabajar simultáneamente. El valor
predeterminado es 150, si bien este número podría
resultar algo bajo para una página muy visitada.
Las instrucciones LoadModule indican qué módulos
se cargan. El orden de carga está definido a través de los mismos módulos. Asimismo, estas
instrucciones especifican los archivos incluidos en el módulo.
Define el puerto en el que Apache aguarda las solicitudes. Este es normalmente el puerto 80, que es el puerto estándar para HTTP. Por lo general no se recomienda modificar esta opción. Por ejemplo, un posible motivo para que Apache esperase en otro puerto sería la prueba de la nueva versión de una página web. De esta forma, la versión activa de dicha página continuaría estando disponible en el puerto 80.
Otra razón sería el publicar páginas web con información confidencial
disponible solamente en una red interna o intranet. Para ello se define,
por ejemplo, el puerto 8080 y los accesos externos a
este puerto se bloquean mediante el cortafuegos. De esta forma, el
servidor está protegido de cara al exterior.
Mediante esta directiva se definen los permisos (por ejemplo de acceso)
para un directorio. También existe una directiva de este tipo para
DocumentRoot. El nombre de directorio indicado en esa
directiva ha de concordar con el nombre indicado en
DocumentRoot.
Aquí pueden definirse los archivos que ha de buscar
Apache para completar una URL cuando no se
indica ningún archivo o recurso. El valor predeterminado es
index.html. Por ejemplo, si el cliente solicita la
URL http://www.example.com/foo/bar y en
DocumentRoot se encuentra un directorio
foo/bar que contiene un archivo llamado
index.html, Apache
proporciona esta página al cliente.
Cualquier directorio del cual Apache obtenga
documentos puede incluir un archivo que modifique para ese directorio los
permisos de acceso y otras opciones definidas globalmente. Estas opciones
de configuración se aplican recursivamente al directorio actual y a todos
sus subdirectorios hasta que sean a su vez modificadas en un subdirectorio
por otro de estos archivos. La configuración tiene validez global cuando
se define en un archivo de DocumentRoot. Estos archivos
se llaman normalmente .htaccess, pero este nombre
puede ser modificado (véase la Sección 30.6.2.10, “AccessFileName”).
En AllowOverride se determina si la configuración
definida en los archivos locales puede sobreescribir las opciones globales
de configuración. Los valores admitidos para esta variable son
None y All así como cualquier
combinación posible de Options,
FileInfo, AuthConfig y
Limit. El significado de estos valores se describe con
detalle en la documentación de Apache. El valor
predeterminado (y más seguro) es None.
Esta opción define el orden en el que se aplican las opciones de
configuración para los permisos de acceso Allow y
Deny. El valor predeterminado es:
Order allow,deny
Es decir, en primer lugar se aplican los permisos de acceso autorizados y a continuación los permisos de acceso denegados. Los enfoques posibles son:
para permitir todos los accesos y definir excepciones
para denegar todos los accesos y definir excepciones
Un ejemplo del segundo enfoque:
Order deny,allow Deny from all Allow from example.com Allow from 10.1.0.0/255.255.0.0
Aquí es posible introducir los nombres de archivos que pueden
sobreescribir las opciones globales de configuración en los directorios
proporcionados por Apache (ver la Sección 30.6.2.8, “AllowOverride”). El valor predeterminado es
.htaccess.
Esta opción contiene el nombre del archivo en el que Apache emite los
mensajes de error. El valor predeterminado es
/var/log/httpd/errorlog. Los mensajes de error para las
máquinas virtuales (véase la Sección 30.9, “Máquinas virtuales”) se
emiten también en este archivo si no se ha especificado ningún archivo de
registro propio en la sección correspondiente a la máquina virtual del archivo
de configuración.
Dependiendo de su prioridad, los mensajes de error se agrupan en distintos
niveles. Esta opción indica a partir de qué nivel de prioridad se emiten
los mensajes de error. Sólo se emiten los mensajes con el nivel de
prioridad introducido o superior. El valor predeterminado es
warn.
Un alias define un atajo para un directorio que permite acceder
directamente a dicho directorio. Por ejemplo, con el alias
/manual/ es posible acceder al directorio
/srv/www/htdocs/manual aunque en DocumentRoot se haya
definido otro directorio como /srv/www/htdocs.
(Mientras el documento raíz tenga este valor, no hay ninguna diferencia.)
En el caso de este alias, con http://localhost/manual
se puede acceder directamente al directorio correspondiente. Para el
directorio destino definido en una directiva Alias
puede ser necesario crear una directiva Directory
(véase la Sección 30.6.2.6, “Directory”) en la que se definan los permisos para el
directorio.
Esta instrucción se asemeja a Alias, pero indica además
que los archivos del directorio destino han de ser tratados como scripts
CGI.
Para activar estas opciones, las SSIs deben buscarse en todos los archivos ejecutables. Para ello se utiliza la instrucción
<IfModule mod_include.c> XBitHack on </IfModule>
Con el fin de poder buscar Server Side Includes en un
archivo, el archivo en cuestión ha de hacerse ejecutable con
chmod +x nombre_archivo. De
manera alternativa, también es posible indicar explícitamente el tipo de
archivo que ha de ser examinado en busca de SSIs. Esto se realiza con
AddType text/html .shtml AddHandler server-parsed .shtml
No es una buena idea el introducir simplemente
.html ya que Apache examina
entonces todas las páginas en busca de Server Side Includes (incluyendo
aquellas que con seguridad no contienen ninguna) con la consiguiente
disminución de rendimiento. Estas instrucciones ya están incluidas en el
archivo de configuración de SUSE LINUX, por lo que normalmente no será
necesario llevar a cabo ninguna configuración.
Mediante el módulo mod_userdir y la directiva
UserDir es posible definir un directorio dentro del
directorio local de usuario en el que el usuario pueda publicar sus archivos a
través de Apache. Esto se define en SuSEconfig mediante la variable
HTTPD_SEC_PUBLIC_HTML. Para poder publicar archivos,
la variable debe tener el valor yes. Esto conduce a la
siguiente entrada en el archivo
/etc/apache2/mod_userdir.conf (el cual es cargado por
/etc/apache2/httpd.conf).
<IfModule mod_userdir.c> UserDir public_html </IfModule>