Usuario:ManuelRomero/modulo APACHE/Directivas
Qué son las directivas
- Las directivas son variables predefinidas que utiliza el fichero/s de configuración de del servidor Apache
- Gracias a ellas podemos personalizar el comportamiento del servidor web
- Son muchas las directivas existentes, veremos algunas de ellas en el presente wiki
- Dentro del fichero de configuración el signo # indica un comentario (se ignora esa línea)
Cualquier cambio en la configuración del servidor tendrá efecto después de reniciarlo |
Referencias
- Fichero de configuracion comentado y con referencias a la web
- Referencias relacionadas con apache
- Directivas de apache. Lista completa en la página oficial
- Formas de uso de las directivas de la página oficial
- Terminos usados para describir el uso de directivas
Directivas
ServerRoot
- Corresponde al directorio donde se ha instalado el apache
- No se debería cambiar (Si se cambia el servidor no deja de funcionar)
- Posteriormente podemos hacer referencia a este directoria a través de la referencia %SeverRoot%
ServerRoot /var/
- Cuando se especifican rutas relativas siempre se tomarán respecto a la ubicación de ServerRoot
PidFile
- Ubicación del fichero donde el servidor guarda su ID de proceso
- Por defecto se ubica en %ServerRoot%/logs/httpd.pid
PidFile logs/httpd.pid
Timeout
- Tiempo en segundos en los que se esperan las respuestas en la comunicación
- Pasado este tiempo se entiende que la comunicación se ha cortado
- Por defecto se estable a valor de 300
Timeout 300
===KeepAlive MaxKeepAliveRequest KeepAliveTimeout===
- Permitir o no varias peticiones por conexión
KeepAlive off
- Establecerlo a on puede hacer que un cliente sature a un servidor.
- Si se establece a on es muy recomendado usar las siguientes directivas.
- MaxKeepAliveRequest para limitar el número de peticiones en cada conexión.
- KeepAliveTimeout establece el tiempo que el servidor espera antes de atender una nueva petición de la misma conexión.
ifModule
- Verifica la existencia de un determinado módulo
- En caso de que exista el módulo se establece un bloque de opciones
- Existe la posibilidad de establecer el bloque de opciones en caso de que no exista dicho módulo con la exclamación !
<ifModule nombre_modulo> Definiciones a tener en cuenta si está cargado el módulo nombre_modulo </ifModule> <!ifModule nombre_modulo> Definiciones a tener en cuenta si no está cargado el módulo nombre_modulo </ifModule>
StartServer MaxClient MaxRequestsPerChild
- Número de servidores que se crearán al arrancar el servicio
StartServer 5 #Abrimos 5 servidores al arrancar el servidor http Apache
- MaxClient clientes que el servidor puede atender de forma concurrente
- MaxRequestsPerChild establece el número máximo de peticiones que un proceso hijo puede atender.
- Despues de atender este número de peticiones el proceso es eliminado
- En caso de tener el valor 0 (valor por defecto) no se limita el número de peticiones que un proceso hijo puede atender
Port
- Puerto que abre el servidor web para atender las solicitudes
- Si no se especifica se asigna el puerto 80
#establecemos el puert 7900 en lugar del puerto 80 Port 7900
Listen
- Direcciones IP y puertos en los que escucha el servidor además de los puertos por defecto
#Listen [IP-address:]portnumber #Establecer el valor por defecto Listen 127.0.0.1:80
#Aquí establecemos que además del puerto 80, escuche también por el puerto 8080 Listen 8080
LoadModule
- Esta directiva permita cargar nuevos módulos como si se tratara de ensambar un nuevo componente sin tener que volver a compilar los fuentes
- Apache normalmente viene con la opcion DSO Dinamic Shared Object, por lo que podemos agregar nuevos módulos
- Los módulos con los que se compilaron los fuentes no hacen falta volver a cargarlos. Sólo sería para añadir nuevos módulos que queramos incorporar
User Group
- Estas directivas especifican el identificador de usuario, grupo con el que el servidor responderá a las peticiones. Es decir el usuario,grupo, propietario del proceso hijo que atiende las solicitudes del cliente
- Para usar esta directiva, el servidor debe haber sido iniciado como root.
- Si se inicia Apache con un usario distinto de root, no se podrá cambiar a un usuario con menores privilegios, y el servidor continuará ejecutándose con el usuario original.
- Si inicia el servidor como root, entonces es normal que el procedimiento padre siga ejecutándose como root.
- Un nombre de ususario, se refiere al usuario dado por su nombre.
- # seguido por un número de usuario.
- Se refiere al usuario que corresponde a ese número.
User nombre_usuario User #num_id_usuario Group nombre_usuario Group #num_id_usuario
ServerAdmin
ServerAdmin direccion_email|URL
- Permite especificar la dirección del administrador que se mostrará al cliente en caso de que se produzca un error
ServerName
- Especifica el nombre del servidor
ServerName nombre_basado_dominio[:port]
- Es recomendado utilizarlo, si no se utiliza se intentará deducirlo a partir de la ip y de una resolución inversa con el DNS
DocumentRoot
DocumentRoot directorio
- Valor por defecto: DocumentRoot /usr/local/apache/htdocs
- Especificamos el directorio raíz donde queremos colgar las páginas web
- Si dentro de este directorio creamos subdirectorios, podremos acceder a ellos y ver su contendido
- Una vez especificado el DocumentRoot, deberemos detallar su accesibilidad del directorio en la directiva Directory
DocumentRoot /www/myWebs/ .... <Directory "/www/myWebs"> ...
Directory
<Directory directory-path> ... #opciones de acceso y comportamiento </Directory>
- Configuramos el comportamiento y permisos de un directorio especificado
- Si nos se especifica de forma explícita dicho comportamiento será aplicado de forma recursiva a los subdirectorios
- Por defecto aparece en dos ocasiones una muy restrictiva para el directorio raiz y otra más permisiva para el directorio donde comparitimos los ficheros
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny form all </Directory> <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny form all </Directory>
- A continuación vemos las diferentes opciones utilizadas
Options
- Establece la opciones que va a tener el servidor al acceder a un directorio en concreto.
- Puede tomar uno de los siguientes valores
- None : No se activa ninguna de las caracteristicas adicionales
- All :Se activan todas las características expceto la de MultiView
- ExecCGI: permita la ejecución de script CGI usando mod_cgi
- FollowSymLinks: El servidor puede seguir enlaces simbólicos en ese directorio.
- Includes:
- IncludesNOEXEC:
Server-side includes son permitidos, pero el # exec cmd y # exec cgi están deshabilitados. Todavía es posible incluir # virtuales scripts CGI desde directorios ScriptAliased. Índices Si una dirección URL que se asigna a un directorio se solicita, y no hay DirectoryIndex (por ejemplo, index.html) en ese directorio, entonces mod_autoindex devolverá una lista con formato de la guía. MultiViews El contenido negociado "MultiViews" se permite el uso mod_negotiation. nota
Esta opción es ignorada si se define en otro lugar que <Directory>, como mod_negotiation necesita recursos reales para comparar y evaluar contra de. SymLinksIfOwnerMatch El servidor sólo sigue los enlaces simbólicos para que es propiedad del archivo o el directorio en el mismo ID de usuario que el enlace. nota
Esta opción se ignora si se establece dentro de una sección <Location>. Esta opción no se debe considerar una restricción de seguridad, ya que las pruebas enlace simbólico está sujeta a las condiciones de carrera que lo hacen circumventable. Normalmente, si múltiples opciones podría aplicarse a un directorio, entonces el que sea más específica, y otros son ignorados, las opciones no se mezclan. (Ver secciones cómo se combinan.) Sin embargo, si todas las opciones de la directiva opciones van precedidas de una o símbolo -, las opciones se fusionan. Cualquiera de las opciones precedidas por una se añaden a las opciones actualmente en vigor, y las opciones precedidas por una - se retiran de las opciones actualmente en vigor.
Advertencia
Opciones de mezcla con una o - con los que no tienen sintaxis no es válida, y puede causar resultados inesperados. Por ejemplo, sin ninguna y - símbolos:
AllowOverride
Order
Deny
UserDir
DirectoryIndex
AccessFileName
Files
UseCanonicalName
TypesConfig
DefaultType
HostNameLookups
ErrorLog
LogLevel
LogFormat
- CustonLog
- ServerSignature
- Alias
- IndexOptions AddIconByEncoding AddIconByType AddIcon DefaultIcon ReadmeName HeaderName IndexIgnore
- AddEncoding
- AddLenguage
- LenguagePriority
- AddCharset
- AddDefaultCharset
- BrowserMatch