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
.
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 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
.
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.
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.
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.
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.
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.
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.