Diferencia entre revisiones de «Usuario:ManuelRomero/modulo APACHE/Directivas»
Línea 2: | Línea 2: | ||
<br> | <br> | ||
− | + | ==Qué son las directivas== | |
*Las directivas son variables predefinidas que utiliza el fichero/s de configuración de del servidor Apache | *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 | *Gracias a ellas podemos personalizar el comportamiento del servidor web | ||
Línea 8: | Línea 8: | ||
*Dentro del fichero de configuración el signo # indica un comentario (se ignora esa línea) | *Dentro del fichero de configuración el signo # indica un comentario (se ignora esa línea) | ||
{{Conocimiento previo|Cualquier cambio en la configuración del servidor tendrá efecto después de reniciarlo}} | {{Conocimiento previo|Cualquier cambio en la configuración del servidor tendrá efecto después de reniciarlo}} | ||
− | + | ==Referencias== | |
#[http://livenudefrogs.com/~anubis/apache/httpd-conf.shtml Fichero de configuracion] comentado y con referencias a la web | #[http://livenudefrogs.com/~anubis/apache/httpd-conf.shtml Fichero de configuracion] comentado y con referencias a la web | ||
#[http://livenudefrogs.com/~anubis/apache/ Referencias] relacionadas con apache | #[http://livenudefrogs.com/~anubis/apache/ Referencias] relacionadas con apache | ||
Línea 14: | Línea 14: | ||
#[http://httpd.apache.org/docs/2.4/es/mod/quickreference.html Formas de uso] de las directivas de la página oficial | #[http://httpd.apache.org/docs/2.4/es/mod/quickreference.html Formas de uso] de las directivas de la página oficial | ||
#[http://httpd.apache.org/docs/2.4/mod/directive-dict.html#Context Terminos usados] para describir el uso de directivas | #[http://httpd.apache.org/docs/2.4/mod/directive-dict.html#Context Terminos usados] para describir el uso de directivas | ||
− | + | ==Directivas== | |
− | < | + | ===<font color=green>ServerRoot</font>=== |
− | + | ||
:Corresponde al directorio donde se ha instalado el apache | :Corresponde al directorio donde se ha instalado el apache | ||
:No se debería cambiar (Si se cambia el servidor no deja de funcionar) | :No se debería cambiar (Si se cambia el servidor no deja de funcionar) | ||
Línea 22: | Línea 21: | ||
ServerRoot /var/ | ServerRoot /var/ | ||
:Cuando se especifican rutas relativas siempre se tomarán respecto a la ubicación de ServerRoot | :Cuando se especifican rutas relativas siempre se tomarán respecto a la ubicación de ServerRoot | ||
− | |||
<HR/> | <HR/> | ||
+ | ===<font color=green>PidFile</font>=== | ||
+ | |||
:Ubicación del fichero donde el servidor guarda su ID de proceso | :Ubicación del fichero donde el servidor guarda su ID de proceso | ||
:Por defecto se ubica en %ServerRoot%/logs/httpd.pid | :Por defecto se ubica en %ServerRoot%/logs/httpd.pid | ||
PidFile logs/httpd.pid | PidFile logs/httpd.pid | ||
− | |||
<HR/> | <HR/> | ||
+ | ===<font color ="green">Timeout</font>=== | ||
:Tiempo en segundos en los que se esperan las respuestas en la comunicación | :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 | :Pasado este tiempo se entiende que la comunicación se ha cortado | ||
:Por defecto se estable a valor de 300 | :Por defecto se estable a valor de 300 | ||
Timeout 300 | Timeout 300 | ||
− | |||
<HR/> | <HR/> | ||
+ | ===<font color=green>KeepAlive MaxKeepAliveRequest KeepAliveTimeout===</font> | ||
:Permitir o no varias peticiones por conexión | :Permitir o no varias peticiones por conexión | ||
KeepAlive off | KeepAlive off | ||
Línea 41: | Línea 41: | ||
:'''''MaxKeepAliveRequest''''' para limitar el número de peticiones en cada conexión. | :'''''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. | :'''''KeepAliveTimeout''''' establece el tiempo que el servidor espera antes de atender una nueva petición de la misma conexión. | ||
+ | <HR/> | ||
<h4>ifModule</h4> | <h4>ifModule</h4> | ||
<HR/> | <HR/> | ||
Línea 125: | Línea 126: | ||
<hr/> | <hr/> | ||
− | < | + | ===<font color=green>Directory</font>=== |
+ | <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==== | ||
+ | |||
+ | |||
<hr/> | <hr/> | ||
<h4>UserDir</h4> | <h4>UserDir</h4> |
Revisión de 23:11 9 ene 2013
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