Directivas de configuración Apache

Directivas de configuración Apache

Directivas de configuración Apache

La configuración de Apache se realiza a través de archivos de texto mediante directivas que permiten escoger las distintas opciones disponibles.

Aunque las directivas son las mismas sea cual sea el sistema operativo, la localización de los archivos de configuración es diferente.

Requisitos de las directivas

  • Una directiva por línea. Para indicar que una directiva continúa en la siguiente línea se puede poner una barra invertida \ como último caracter.
  • Las directivas no son sensibles a mayúsculas o minúsculas pero muchos argumentos si.
  • Los argumentos se separan por espacios en blanco. Si un argumento contiene espacios debe ponerse entre comillas.
  • Los comentarios comienzan con el caracter #, y no pueden estar en la misma línea que una directiva.
  • Las líneas en blanco y los espacios a principio de línea se ignoran. Sólo sirven para facilitar la lectura de los ficheros.

Ficheros de configuración en Linux

El principal fichero de configuración de apache en linux es apache2.conf y está situado en /etc/apache2/apache2.conf

Y otros dos ficheros que están incluidos en el fichero apache2.conf, el fichero de configuración de los puertos de escucha: /etc/apache2/ports.conf y el fichero de configuración del servidor virtual por defecto: /etc/apache2/sites-available/000-default.conf

Ficheros de configuración en Windows

El fichero de configuración de apache en Windows es httpd.conf y se encuentra en la ruta: C:\Apache24\conf\httpd.conf

Directivas básicas de configuración de Apache

Listen

La directiva Listen indica a través de qué puertos e interfaces IP se aceptarán peticiones. Apache responde peticiones por defecto de todas las inferfaces en el puerto que se le indique.

Ejemplos:

Para hacer que el servidor acepte conexiones en los puertos 80 y 8080 escribiremos la directiva:

Listen 80
Listen 8080

Para atender dos IP distintas, con distintos puertos escribiremos:

Listen 192.168.255.5:80
Listen 192.168.255.3:8080

ServerRoot

En ServerRoot se encuentra especificada la localización del directorio raíz donde está instalado apache. Esta directiva no se debe cambiar a menos que se cambie la carpeta de instalación de apache a otro directorio.

Ejemplo:

ServerRoot /etc/apache2

Include

Permite incluir otros archivos de configuración. Las rutas de estos archivos pueden ser absolutas o relativas al directorio indicado en la directiva ServerRoot.

Ejemplo:

Include ports.conf

DocumentRoot

Indica el directorio desde el que apache va a servir archivos. El servidor añade la ruta indicada en la URL a este directorio. Todos los directorios que va a servir apache deben tener permiso de lectura y ejecución para todos los usuarios, y todos los archivos que sirva permiso de lectura.

Ejemplo:

//Si la directiva es: 
DocumentRoot /var/www/html
//Si la URL solicitada es:
http://www.miservidor.com/prueba/index.html
//Apache servirá el fichero:
index.html
//Que estará en el directorio:
/var/www/html/prueba

ErrorLog

La directiva ErrorLog indica qué fichero tiene el registro de errores. Si la ruta que se le indica no es absoluta, se considera relativa al ServerRoot. Por defecto se encuentra el el directorio logs dentro de ServerRoot

DirectoryIndex

Especifica el fichero por defecto que se servirá para cada directorio. Si no se especifica ninguno en la URL, por defecto será index.html

Es posible indicar varios ficheros. En el caso de que lo hagamos, la prioridad que decidirá cuál se muestra primero será el orden de dichos ficheros.

Ejemplo:

DirectoryIndex index.html inicio.html index.php

ErrorDocument

Indica la acción a realizar en el caso de producirse un error. Se podrá mostrar un texto personalizado o una página web dentro o fuera del servidor. Si no se indica nada se mostrará el mensaje por defecto.

Ejemplos:

ErrorDocument 404 "Este fichero no existe"
ErrorDocument 404 errores/error404.html
ErrorDocument 404 http://www.tutobasico.com/paginaerror.html

Alias

La directiva Alias permite definir directorios virtuales. Un directorio virtual se encuentra en un lugar distinto al que indica la URL. No tiene porqué estar dentro del árbol de directorios de DocumentRoot, sinó que puede estar en cualquier lugar. La sintaxis es: Alias nombreAlias ubicaciónReal

Ejemplo:

Alias /apuntes/programacion /home/usuario/programacion

Redirect

Permite indicar al cliente que un documento ha sido actualizado o modificado. Tiene preferencia respecto a la directiva Alias, independientemente del orden en que una y otra estén situados en el fichero de configuración.

Ejemplo:

Redirect /servicio http://otrodirectorio.ejemplo.com/servicio

Options

La directiva Options contiene la lista de características que están disponibles para un determinado directorio. Las que no están disponibles van precedidas de un signo -.

Veamos algua de ellas:

indexes: Si se solicita una URL que apunta a un determinado directorio y no contiene ningún fichero incluido en el DirectoryIndex, se mostrará el listado de ficheros de dicho directorio.

FollowSymLinks: El servidor seguirá enlaces simbólicos en este directorio.

Ejemplo:

Options Indexes -FollowSymLinks

Etiquetas de configuración por secciones

Las directivas se pueden poner dentro de etiquetas de bloque y así afectar únicamente a ese bloque.

Veamos algunos ejemplos de etiquetas de bloque:

Directory

Las directivas que se incluyan dentro de Directory sólo se aplican a ese directorio, los subdirectorios y los contenidos. Debe indicarse con la ruta absoluta.

Ejemplo:

<Directory /var/www/html/cursos>
//Aquí van las directivas
</Directory>

Files

Las directivas que incluya el bloque Files únicamente se aplican a los ficheros indicados.

Ejemplo:

<Files "personal.html">
//Aquí van las directivas
</Files>

Location

Las directivas del bloque Location se aplícan únicamente en el ámbito de la URL indicada en la etiqueta.

Ejemplo:

<Location /personal1>
//Aquí van las directivas
</Location /personal1>

Módulos

El núcleo de Apache tiene la funcionalidad básica de un servidor web, pero existen muchos módulos que permiten añadirle más funcionalidades. Cada módulo tiene un conjunto de directivas que permiten su gestión.

Hay dos maneras de añadir módulos al servidor Apache:

  • Estáticamente: En el momento de compilar el ejecutable del servidor se indican los módulos que se quieren incorporar.
  • Dinámicamente: Se cargan los módulos en el momento de lanzar el servidor y se gestionan en la configuración del mismo. Estos módulos cargados dinámicamente se llaman objetos dinámicos compartidos o módulos DSO (Dynamic Shared Object).

Consultar los módulos estáticos:

//En Linux:
  sudo apache2ctl -l
//En Windows
  C:\Apache24\bin\httpd.exe -l

Consultar los módulos dinámicos

//En Linux, Listar el contenido del directorio:
  /etc/apache2/mods-enabled
//En Windows:
  Consultando las directivas LoasModule del fichero de
   configuración de Apache C:\Apache24\conf\httpd.conf

Consultar los módulos dinámicos disponibles

//En Linux:
  //Consultar los ya instalados listando el directorio:
  /usr/lib/apache2/mods-enabled
  //Consultar los no instalados:
  sudo apt-cache search libapache2-mod
//En Windows:
  //Consultar el directorio:
  C:\Apache24/modules

Habilitar módulos dinámicamente

//Linux:
  sudo a2enmod nombreMódulo
//Windows:
  //En el fichero httpd.conf descomentar las 
  directivas LoadModule e Inclue de ese módulo

Deshabilitar módulos dinámicamente

//Linux:
  sudo a2dismod nombreModulo
//Windows:
  //En el fichero httpd.conf comentar las 
  directivas LoadModule e Inclue de ese módulo

Inserción de directivas correspondientes al módulo

//Linux:
  //En el fichero de extensión .conf dol módulo, que
  //se encuentra en el directorio /etc/apache2/mods-available
//Windows:
  //En el fichero de extensión .conf del módulo, que
  //se encuentra en el directorio C:\Apache24\conf\extra

El módulo userdir

Userdir es un módulo de Apache que hace posible que todos los usuarios con acceso a un servidor, tengan una carpeta propia para guardar sus páginas y archivos.

Para acceder a estas páginas desde el cliente debe añadirse a la IP o URL el usuario. Ejemplo:

http://192.168.0.1/~carlos

Fichero de configuración del módulo userdir

//Linux:
  /etc/apache2/mods-available/userdir.conf
//Windows:
  C:\Apache24\conf\extra\httpd-userdir.conf

Carpeta por defecto de userdir

//Linux:
  /home/usuario/public_html
//Windows:
  C:\Users|nombreUsuario\My Documents\|My Website

Si te ha gustado no olvides compartir en redes sociales.

Espero que te haya servido. Cualquier duda deja un comentario. Un saludo

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Translate »
Ir a la barra de herramientas