Ficheros de Configuración


Principales ficheros de configuración

Módulos asociados

mod_mime
Directivas relevantes

AccessConfig
<IfDefine>
Include
ResourceConfig
TypesConfig

Apache se configura poniendo directivas en los ficheros de configuración en texto simple. El fichero principal de configuración suele llamarse httpd.conf. La ubicación de este fichero se define cuando se compila Apache, pero puede ser modificada con el comando -f en la línea de comandos. Algunos servidores tienen también ficheros srm.conf y access.conf por razones históricas. Además de eso, se pueden adicionar otros ficheros de configuración usando la directiva Include. Cualquier directiva se puede colocar en cualquiera de estos ficheros de configuración. Apache solo reconocerá los cambios en los ficheros de configuración durante el arranque o reinicio.

A partir de la versión 1.3.13 Apache tiene una nueva funcionalidad en la que si cualquiera de los ficheros de configuración es un directorio, Apache entrará en ese directorio y analizará cualquier fichero (y subdirectorio) que se encuentre allí, tratándolos como ficheros de configuración. Un posible uso de esta funcionalidad consistiría en añadir servidores virtuales (VirtualHosts), creando pequeños ficheros de configuración para cada servidor virtual, y colocándolos en un directorio de configuración. Así, se puede insertar o eliminar servidores virtuales sin tener que editar ningún fichero, sino simplemente quitando o copiando ficheros. Esto facilita la automatización de estos procesos.

El servidor también lee un fichero que contiene tipos "mime" de documentos; el nombre del fichero se especifica por medio de la directiva TypesConfig, y su valor por defecto es mime.types.


Sintaxis de los ficheros de configuración

Los ficheros de configuración de Apache contienen una directiva por línea. Se puede usar "\" al final de una línea para indicar que una directiva continua en la próxima línea. No puede haber otros caracteres o espacio en blanco entre el carácter "\" y el fin de la línea.

En las directivas, dentro de los ficheros de configuración, no se hace distinción entre mayúsculas y minúsculas. Las líneas que comiencen con el carácter "#" serán consideradas comentarios, siendo ignoradas. No se pueden incluir comentarios en una línea, después de una directiva de configuración. Los espacios y líneas en blanco antes de una directiva de configuración se ignoran, de manera que se puede dejar una sangría en las directivas para mayor claridad.

Puede hacer un chequeo de la sintaxis de sus ficheros de configuración sin tener que reiniciar el servidor, usando apachectl configtest o la opción -t de la línea de comandos.


Módulos

Módulos relevantes

mod_so
Directivas relevantes

AddModule
ClearModuleList
<IfModule>
LoadModule

Apache es un servidor modular. Esto implica que en el servidor básico se incluyen únicamente las funcionalidades más básicas. Otras funcionalidades se encuentran disponibles a través de módulos que pueden ser cargados por Apache. Por defecto, durante la compilación se incluye en el servidor un juego de módulos base. Si el servidor se compila para usar carga dinámica de módulos, entonces los módulos pueden ser compilados por separado, e incluidos en cualquier momento usando la directiva LoadModule. En caso contrario, Apache deberá ser recompilado para agregar o eliminar módulos. La directivas de configuración pueden ser incluidas en forma condicional dependiendo de la presencia de un módulo particular, poniéndolas dentro de un bloque <IfModule>.

Para ver qué módulos han sido compilados en el servidor, puede usar la opción de línea de comandos -l.


Rango de acción de las Directivas

Directivas relevantes

<Directory>
<DirectoryMatch>
<Files>
<FilesMatch>
<Location>
<LocationMatch>
<VirtualHost>

Las directivas que se pongan en los ficheros principales de configuración se aplicarán a todo el servidor. Si usted quiere cambiar únicamente la configuración de una parte del servidor, puede cambiar el rango de acción de las directivas poniéndolas dentro de las secciones <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, y <LocationMatch> . Estas secciones limitan el dominio de aplicación de las directivas dentro de ellas, a locales particulares dentro del sistema de ficheros o URL's particulares. Estas secciones pueden ser anidadas, para permitir un grado de selección más fino.

Apache tiene la capacidad de servir varios sitios web diferentes al mismo tiempo. Esto se llama Hospedaje Virtual (en inglés Virtual Hosting). El dominio de aplicación de las directivas también puede ser delimitado poniéndolas dentro de <VirtualHost>, de manera que solo tendrán efecto para pedidos de un sitio web en particular.

A pesar de que la mayor parte de las directivas pueden ir dentro de estas secciones, hay algunas directivas que pierden su sentido en algunos contextos. Por ejemplo, las directivas que controlan la creación de procesos solo pueden ir en el contexto del servidor principal. Para descubrir qué directivas pueden estar dentro de qué secciones, revise el contexto de la directiva. Para mayor información, encontrará más detalles sobre este asunto en Cómo funcionan las secciones de Directorio, Lugar y Ficheros.


Ficheros .htaccess

Directivas relevantes

AccessFileName
AllowOverride

Apache permite una administración descentralizada de la configuración, a través de ficheros colocados dentro del árbol de páginas web. Los ficheros especiales se llaman normalmente .htaccess, pero se puede especificar cualquier otro nombre en la directiva AccessFileName. Las directivas que se pongan dentro de los ficheros .htaccess se aplicarán únicamente al directorio donde esté el fichero, y a todos sus subdirectorios. Los ficheros .htaccess siguen las mismas reglas de sintaxis que los ficheros principales de configuración. Como los ficheros .htaccess se leen cada vez que hay una petición de páginas, los cambios en estos ficheros comienzan a actuar inmediatamente.

Para ver qué directivas se pueden poner en los ficheros .htaccess, consulte el contexto de cada directiva. El administrador del servidor pueden controlar aún más qué directivas son permitidas en los ficheros .htaccess, configurando la directiva AllowOverride en los ficheros principales de configuración.


Ficheros de Bitácora (Log)

Advertencia de seguridad

Cualquier persona que pueda escribir en el directorio donde Apache escribe las bitácoras, seguramente podrá también acceder al código de usuario (uid) con el que se ha arrancado el servidor, que normalmente es el usuario root. NO permita que las personas puedan escribir en el directorio donde se guardan las bitácoras sin tener presente las possibles consecuencias; consulte el documento sugerencias de seguridad para ver los detalles.

Fichero pid

Al arrancar Apache almacena el número del proceso padre del httpd en el fichero logs/httpd.pid. Este nombre de fichero se puede cambiar con la directiva PidFile. El número del proceso es para el uso del administrador, cuando quiera terminar o reiniciar el demonio: en Unix una señal HUP o USR1 hace que el demonio lea nuevamente sus ficheros de configuración, y una señal TERM hace que muera elegantemente; en Windows, use la opción de línea de comandos -k. Para mayor información, consulte la página Parar o reiniciar.

Si el proceso muere (o es interrumpido) anormalmente, entonces será necesario matar los procesos hijos.

Bitácora de errores

El servidor registrará los mensajes de error en un fichero de bitácora, que será por defecto logs/error_log en Unix o logs/error.log en Windows y OS/2. El nombre del fichero se puede alterar usando la directiva ErrorLog; se pueden usar diferentes bitácoras de error para diferentes anfitriones virtuales.

Bitácora de transferencia

El servidor normalmente registrará cada pedido en un fichero de transferencia que, por defecto, será logs/access_log en Unix o logs/access.log en Windows y OS/2. El nombre del fichero se puede alterar usando la directiva CustomLog; se pueden usar diferentes ficheros de transferencia para diferentes anfitriones virtuales.