46.3. Configuración

Apache se puede configurar en SUSE Linux de dos modos diferentes: con YaST o manualmente. La configuración manual ofrece un nivel superior de detalle, pero carece de la comodidad de la interfaz gráfica de YaST.

[Important]Cambios de configuración

Los cambios realizados en algunos de los valores de configuración de Apache sólo surten efecto cuando Apache se reinicia. Esto sucede automáticamente al finalizar la configuración empleando YaST con la opción Enabled (Habilitado) para el servicio HTTP. El reinicio manual se describe en la Sección 46.3.3, “Activación, inicio y detención de Apache”. La mayoría de los cambios de configuración sólo requieren volver a cargar el programa con rcapache2 reload.

46.3.1. Configuración de Apache con YaST

Con YaST, puede convertir un host de la red en un servidor Web. Para configurar un servidor de ese tipo, inicie YaST y seleccione Servicios de red+Servidor HTTP. Al iniciar el módulo por primera vez, se inicia el Asistente de servidor HTTP, que le solicitará que tome algunas decisiones relativas a la administración del servidor.

46.3.1.1. Asistente de servidor HTTP

El Asistente de servidor HTTP consta de cinco pasos o cuadros de diálogo. En el último paso del cuadro de diálogo, podrá introducir el modo de configuración avanzada para realizar ajustes aún más específicos.

Selección de dispositivos de red

Especifique las interfaces y los puertos de red que Apache utilizará para escuchar las peticiones entrantes. Puede seleccionar cualquier combinación de las interfaces de red existentes y sus direcciones IP respectivas. Es posible utilizar productos de los tres rangos (puertos conocidos, puertos registrados y puertos dinámicos o privados) no reservados por otros servicios.

Con la configuración definida por defecto, se escucha en todas las interfaces de red (direcciones IP) en el puerto 80. Cuando se activa el cortafuegos, se puede decidir si se habilitan o no los puertos de Apache en el cortafuegos.

Seleccione Open Firewall for Selected Ports (Abrir cortafuegos para los puertos seleccionados) para abrir los puertos en el cortafuegos en el que escucha el servidor Web. Este paso es necesario para que el servidor Web esté disponible en la red, que puede ser una LAN, una WAN o Internet. Mantener el puerto de escucha cerrado es útil para las situaciones de prueba en las que no es necesario el acceso externo al servidor Web. Si está satisfecho con la configuración definida por defecto o ha realizado cambios, haga clic en Siguiente para continuar con la configuración.

Figura 46.1. Asistente de servidor HTTP: Selección de dispositivos de red

Asistente de servidor HTTP: Selección de dispositivos de red
Módulos

El paquete SUSE Linux Apache incluye una amplia variedad de módulos Apache. Los módulos amplían la funcionalidad de Apache y están disponibles para una amplia gama de tareas. La opción de configuración Modules (Módulos) permite cargar y descargar varios módulos de Apache cuando se inicia el servidor. Para obtener una explicación más detallada de los módulos, consulte la Sección 46.5, “Módulos de Apache”. Haga clic en Siguiente para continuar.

Figura 46.2. Asistente de servidor HTTP: Módulos

Asistente de servidor HTTP: Módulos
Ordenador predeterminado

Esta opción pertenece al servidor Web por defecto. Como se explica en la Sección 46.4, “Hosts virtuales”, Apache puede servir a varios dominios desde una sola máquina. El primer dominio declarado (o VirtualHost) del archivo de configuración se denomina Ordenador predeterminado. Para editar la configuración del host, seleccione la entrada apropiada en la tabla y, a continuación, haga clic en Editar. Para añadir un host nuevo, haga clic en Añadir. Para eliminar un host, selecciónelo y haga clic en Suprimir.

En este paso, puede añadir una opción de SSL (capa de conexión segura) y mejorar la configuración del host. Puede obtener más información al respecto en la Sección 46.3.1.3, “Adición de compatibilidad con SSL”.

Figura 46.3. Asistente de servidor HTTP: Ordenador predeterminado

Asistente de servidor HTTP: Ordenador predeterminado

A continuación, se ofrece una lista con los ajustes por defecto del servidor:

Documento raíz

Como se describe en Sección 46.2.3.4, “Raíz de documentos”, /srv/www/htdocs es la ubicación por defecto desde la que Apache sirve páginas Web.

Directorio

/srv/www/htdocs es la ubicación de las páginas Web.

Alias

Con la ayuda de las directivas Alias, las URL se pueden asignar a ubicaciones físicas de sistemas de archivos. Esto significa que es posible acceder a cualquier vía incluso si se encuentra fuera del Documento raíz del sistema de archivos mediante una URL con el alias de dicha vía.

Los Alias /iconos SUSE Linux por defecto señalan /usr/share/apache2/icons para los iconos de Apache que aparecen en la vista de índice del directorio.

Directorio

/usr/shareapache2/icons es la ubicación del directorio Alias.

Alias de guión

Al igual que la directiva Alias, la directiva ScriptAlias asigna una URL a la ubicación de un sistema de archivos. La diferencia es que ScriptAlias designa el directorio destino como ubicación CGI, lo que significa que los guiones CGI deberían ejecutarse en dicha ubicación.

Directorio

/srv/www/cgi-bin es la ubicación del directorio ScriptAlias.

Incluir

/etc/apache2/conf.d/*.conf es el directorio que contiene los archivos de configuración que se incluyen en ciertos paquetes. /etc/apache2/conf.d/apache2-manual?conf es el directorio que contiene los archivos de configuración apache2-manual.

Resolución del servidor

Esta opción hace referencia a la Sección 46.4, “Hosts virtuales”.

Determine Request Server by HTTP Headers (Determinar servidor de peticiones por encabezados HTTP) ofrece una respuesta por parte de VirtualHost a una petición realizada a su nombre de servidor (consulte la Sección 46.4.1, “Hosts virtuales basados en nombres”).

Determine Request Server by Server IP Address (Determinar servidor de peticiones por dirección IP del servidor) hace que Apache seleccione el host solicitado por la información de encabezados HTTP que envía el cliente. Consulte la Sección 46.4.2, “Hosts virtuales basados en IP” para obtener más información acerca de los hosts virtuales basados en IP.

Nombre del servidor

Éste especifica la URL por defecto que utilizan los clientes para ponerse en contacto con el servidor Web. Utilice un FQDN (consulte Dominio) para llegar al servidor Web en http://FQDN o en su dirección IP.

Correo electrónico del administrador de servidores

Proporcione la dirección de correo electrónico del administrador del servidor Web en Dirección de correo del administrador del servidor.

Una vez que haya terminado con el paso Ordenador predeterminado, haga clic en Siguiente para continuar con el cuadro de diálogo de configuración.

Hosts virtuales

En este paso, el asistente muestra una lista de los hosts virtuales ya configurados (consulte la Sección 46.4, “Hosts virtuales”). Uno de los hosts se selecciona por defecto (con un asterisco al lado del nombre del servidor). Para definir un ordenador predeterminado, seleccione el servidor y haga clic en Definir como predeterminada.

Para añadir un host, haga clic en Añadir y aparecerá un cuadro de diálogo en el que introducir información básica acerca del host. Identificación del servidor incluye el nombre del servidor, la raíz del contenido del servidor y el correo electrónico del administrador. El texto de ayuda de la trama izquierda de la ventana explica cada uno de estos elementos en detalle. La resolución del servidor se utiliza para determinar cómo se identifica un host. Puede especificar si desea determinar un servidor de peticiones a partir de los encabezados HTTP o por dirección IP del servidor mediante la selección de la opción respectiva. La otra posibilidad es determinar el host virtual por la dirección IP utilizada por el cliente al conectarse al servidor. También puede elegir habilitar el soporte de SSL mediante seleccionando dicha opción. También se puede especificar la vía de archivos de certificado. Al hacer clic en Examinar, se muestra el directorio por defecto /etc/apache2/ssl.crt. Una vez introducida toda la información, haga clic en Siguiente para continuar hasta el paso final de la configuración.

Figura 46.4. Asistente de servidor HTTP: Hosts virtuales

Asistente de servidor HTTP: Hosts virtuales
Resumen

Éste es el paso final del asistente. Determine cómo y cuándo se inicia el servidor Apache: al arrancar o de forma manual. El puerto seleccionado anteriormente también se muestra junto con los hosts virtuales y por defecto. Si está satisfecho con la configuración, haga clic en Finalizar para terminar la configuración.

Figura 46.5. Asistente de servidor HTTP: Resumen

Asistente de servidor HTTP: Resumen

46.3.1.2. Configuración avanzada del servidor HTTP

El módulo del servidor HTTP le permite realizar incluso más ajustes en la configuración. Haga clic en Configuración experta del servidor HTTP para ver más opciones de configuración. También se pueden realizar los siguientes cambios:

Escuchar en

Si selecciona el ajuste Escuchar en y hace clic en Editar, se abrirá una ventana nueva en la que puede añadir, eliminar y editar entradas.

Módulos

Si selecciona la configuración Módulos y hace clic en Editar, puede cambiar el estado de los módulos Apache2 haciendo clic en Cambiar estado. Haga clic en Añadir módulo para añadir un módulo nuevo.

Ordenador predeterminado

Si selecciona Ordenador predeterminado y hace clic en Editar, podrá editar la configuración del host. También es posible añadir, editar o eliminar opciones.

Hosts

Al seleccionar Hosts y hacer clic en Editar, podrá añadir, eliminar, editar un host o seleccionarlo como por defecto.

En todos los cuadros de diálogo precedentes, es posible hacer clic en Archivos de registro para ver el registro de errores y acceder al registro. Haga clic en Aceptar para completar la configuración y volver al Centro de Control de YaST.

46.3.1.3. Adición de compatibilidad con SSL

Para añadir una opción de SSL al host, haga clic en Añadir desde el paso tres (ordenador predeterminado) del Asistente de servidor HTTP. Si ya se ha configurado el servidor y ya no tiene acceso al asistente, puede configurar una opción SSL seleccionando Ordenadores predeterminados en el cuadro de diálogo Configuración del servidor HTTP o haciendo clic en Editar y Añadir. En los dos casos, aparece una ventana emergente en la que puede desplazarse a una opción SSL y confirmar con Aceptar. A continuación, se le solicitará que introduzca un valor para la opción seleccionada. Esto puede ser tan sencillo como definir el valor como activo o inactivo, pero puede que el cuadro de diálogo requiera que introduzca un valor apropiado. Si no está seguro, consulte la documentación para ver los parámetros de valores al configurar SSL. Al hacer clic en Aceptar, la opción y el valor aparecen en la lista de configuración del host. Siguiente le lleva al siguiente paso en el cuadro de diálogo de configuración.

Si aparece SSL en la lista de configuración del host, haga clic en Editar para abrir el cuadro de diálogo de configuración de SSL. Si no aparece, haga clic en Añadir, seleccione SSL y Aceptar y el cuadro de diálogo se abre de forma automática. Añada, suprima o edite opciones SSL. Haga clic en Aceptar para volver al Asistente de servidor HTTP.

46.3.2. Configuración manual de Apache

Configurar Apache manualmente implica editar archivos de configuración de sólo texto como usuario Root.

[Important]ya no hay módulo SuSEconfig para Apache2

El módulo SuSEconfig para Apache2 ya no existe en SUSE Linux, pues ya no es necesario para ejecutar SuSEconfig tras cambiar /etc/sysconfig/apache2.

46.3.2.1. /etc/sysconfig/apache2

/etc/sysconfig/apache2 controla algunos de los ajustes globales de Apache, como los módulos que se van a cargar, los archivos de configuración adicionales que se deben incluir, los indicadores con los que debe iniciarse el servidor y los indicadores que deben añadirse a la línea de comandos. Todas las opciones de configuración de este archivo están ampliamente documentadas, por lo que no se mencionan aquí. /etc/sysconfig/apache2 deberá ser suficiente para cualquier necesidad de configuración en un servidor Web de uso general. En caso de necesitar una configuración específica, consulte la Sección 46.3.2.2, “Directivas de Apache en /etc/apache2/httpd.conf: entorno global ”.

[Important]Archivos creados automáticamente al iniciar el servidor

/etc/sysconfig/apache2 crea o edita los siguientes archivos automáticamente cuando se inicia o se reinicia el servidor Web.

  • /etc/apache2/sysconfig.d/loadmodule.conf: módulos que se cargan en el tiempo de ejecución.

  • /etc/apache2/sysconfig.d/global.conf: ajustes generales para todo el sistema.

  • /etc/apache2/sysconfig.d/include.conf: lista de archivos de configuración incluidos.

No edite estos archivos manualmente. Edite los ajustes correspondientes en /etc/sysconfig/apache2.

Para ajustes de configuración de gran precisión, consulte los archivos en /etc/apache2/*, en concreto en caso de necesitar cambios en la configuración manual de los hosts virtuales, el entorno global o el servidor principal.

46.3.2.2. Directivas de Apache en /etc/apache2/httpd.conf: entorno global

SUSE Linux utiliza /etc/apache2/httpd.conf como punto central de referencia para otros archivos de configuración. Edite el archivo sólo para habilitar funciones que no estén disponibles en /etc/sysconfig/apache2. Las directivas de la sección Global Environment (Entorno global) de httpd.conf afectan al funcionamiento general de Apache.

Las secciones siguientes describen algunas de las directivas no disponibles en YaST. Las directivas centrales, como Document Root (Raíz de documentos) (Documento raíz) son fundamentales y necesarias tanto en Global Environment (Entorno global) como en VirtualHost (Host virtual).

Los siguientes parámetros y directivas se ordenan según afiliación lógica y ámbito de configuración. Todos deben definirse en /etc/apache2/httpd.conf.

46.3.2.2.1. LoadModule identificador_módulo /vía/a/módulo

La directiva LoadModule especifica qué módulo de Apache se debe cargar en tiempo de ejecución. identificador_módulo es el nombre del módulo según su documentación. /vía/a/módulo puede ser una vía absoluta o relativa que apunta al archivo.

Ejemplo 46.1. Directiva LoadModule

LoadModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so

En SUSE Linux no es necesario utilizar las declaraciones LoadModule directamente. En lugar de ello, se utiliza APACHE_MODULE en /etc/sysconfig/apache2.

46.3.2.2.2. MaxClients número

El número máximo de clientes Apache que se pueden gestionar simultáneamente. MaxClients debe ser un número lo suficientemente grande como para poder gestionar cuantas solicitudes simultáneas espere recibir el sitio Web, pero lo suficientemente pequeño como para garantizar que haya suficiente memoria RAM física para abastecer a todos los procesos.

46.3.2.2.3. Timeout segundos

Especifica el período de tiempo que debe esperar Apache antes de informar de que una solicitud ha alcanzado el tiempo límite.

46.3.2.3. Directivas de Apache en /etc/apache2/httpd.conf: servidor principal

Las directivas de la sección Main Server (Servidor principal) se aplican cuando las solicitudes del cliente no están siendo gestionadas por ningún VirtualHost (Host virtual), por lo que es necesario que las procese un servidor principal o por defecto. Adicionalmente, los parámetros definidos en este contexto son los valores por defecto para todos los hosts virtuales configurados. En consecuencia, todas las directivas de Main Server (Servidor principal) se pueden definir también en el contexto de VirtualHost (Host virtual) sobrescribiendo los valores por defecto.

46.3.2.3.1. DirectoryIndex nombres de archivos

Defina qué archivos debe buscar Apache para completar una URL cuando no haya especificación de archivo. El ajuste por defecto es index.html. Por ejemplo, si el cliente solicita la URL http://www.ejemplo.com/foo/ y el directorio foo contiene un archivo llamado index.html, Apache mostrará esta página al cliente. Para indicar varios archivos, sepárelos con espacios.

Ejemplo 46.2. Directiva DirectoryIndex

DirectoryIndex index.html index.shtml start.php begin.pl
46.3.2.3.2. AllowOverride All | None | opción

Esta directiva sólo se puede utilizar dentro de una declaración <Directory></Directory>. Consulte Directorio.

AllowOverride especifica qué opciones de visualización puede sobrescribir un archivo .htaccess (u otros archivos especificados por AccessFileName, tal y como se describe en la Sección 46.3.2.3.3, “AccessFileName nombres de archivos).

Los valores posibles son:

All

Todas las opciones se sobreescribirán con un archivo .htaccess.

None

Ninguna opción se sobrescribirá con un archivo .htaccess.

AuthConfig

Los directorios pueden ir protegidos por contraseña con la ayuda de un archivo .htaccess.

FileInfo

Permite utilizar directivas que controlen tipos de documentos dentro de un archivo .htaccess. Un ejemplo típico de esto es configurar páginas de error personalizadas con ErrorDocument (consulte http://httpd.apache.org/docs-2.0/mod/core.html#errordocument).

Indexes

En caso de que no se encuentre ningún documento DirectoryIndex, este parámetro permite a Apache controlar la visualización del contenido de los directorios.

Limit

Controla el acceso a un directorio o a ciertos archivos por parte de los clientes. Las directivas Allow, Deny y Order se utilizan dentro de un archivo .htaccess con este propósito. Para ver información sobre el uso de estas directivas, consulte la documentación del módulo de acceso (http://httpd.apache.org/docs-2.0/mod/mod_access.html).

Options

Permite utilizar las directivas Options y XBitHack dentro de un archivo .htaccess. La directiva Options (http://httpd.apache.org/docs-2.0/mod/core.html#options) controla qué funciones del servidor están disponibles dentro de un directorio concreto. La directiva XBitHack (http://httpd.apache.org/docs-2.0/mod/mod_include.html#xbithack) permite definir los archivos con el bit de ejecución para que se analicen como SSI (consulte la Sección 46.5.1.1, “Inclusiones del servidor con mod_include).

[Important]Importante

Estos ajustes se aplican recursivamente en el directorio en uso y en sus subdirectorios. Estas opciones, excepto All y None, se pueden combinar separándolas con espacios.

Ejemplo 46.3. Directiva AllowOverride

<Directory /srv/www/htdocs>
    AllowOverride None
</Directory>
<Directory /srv/www/htdocs/project>
    AllowOverride All
</Directory>
<Directory /srv/www/htdocs/project/webapp>
    AllowOverride Indexes Limit AuthConfig
</Directory>
46.3.2.3.3. AccessFileName nombres de archivos

AccessFileName define el nombre de los archivos que pueden sobrescribir los permisos de acceso global y otros ajustes para directorios (consulte Directorio).

El ajuste por defecto es .htaccess. Para indicar varios archivos, sepárelos con espacios.

Ejemplo 46.4. Directiva AccessFileName

AccessFileName .htaccess .acl permission.txt
46.3.2.3.4. ErrorLog archivo | "|comando"

Especifica el nombre del archivo en el que Apache debe registrar los mensajes de error. Apache también puede registrar estos mensajes en un comando o en un guión. El ajuste por defecto es /var/log/apache2/error_log.

Ejemplo 46.5. Directiva ErrorLog

ErrorLog /var/log/apache2/error_log
ErrorLog "|/path/to/script"
46.3.2.3.5. LogLevel nivel

Define el nivel de detalle de los mensajes que registrar. El orden de detalle, que va descendiendo según la gravedad de los mensajes, nivel, podría ser

  • emerg

  • alert

  • crit

  • error

  • warn

  • notice

  • info

  • debug

El ajuste por defecto es warn, recomendado para un funcionamiento normal. info y debug ofrecen información útil en cuanto a cuestiones de depuración.

Ejemplo 46.6. Directiva LogLevel

LogLevel debug
        

46.3.2.4. Directivas de Apache en /etc/apache2/httpd.conf: sección Virtual Hosts (Hosts virtuales)

Para mantener varios dominios o nombres de host en una máquina física es necesario disponer de contenedores VirtualHost. Estos contenedores se declaran en las secciones Virtual Hosts (Hosts virtuales) de la configuración. Para obtener más detalles acerca de la sintaxis empleada en los hosts virtuales, así como su funcionalidad, consulte la Sección 46.4, “Hosts virtuales”.

46.3.3. Activación, inicio y detención de Apache

Para activar el servidor Web Apache en el momento de inicio, utilice el editor de nivel de ejecución de YaST. Para iniciarlo, seleccione Sistema+Servicios del sistema (niveles de ejecución) en YaST. A continuación, diríjase a la entrada apache2. Elija Habilitar para que Apache se inicie automáticamente cuando se inicie la máquina. Los usuarios expertos tal vez prefieran utilizar la herramienta chkconfig para hacer lo mismo a través de la línea de comandos: /sbin/chkconfig -a apache2.

Para iniciar o detener Apache, utilice el guión /usr/sbin/rcapache2 como usuario Root. /usr/sbin/rcapache2 toma los siguientes parámetros para iniciar y detener el servidor Web Apache:

start

Inicia el servidor Web Apache.

startssl

Inicia el servidor Web Apache con compatibilidad para SSL. Para obtener información sobre cómo configurar Apache con SSL, consulte la Sección 46.3.1.3, “Adición de compatibilidad con SSL” y la Sección 46.5.2.2, “Nivel de zócalo con seguridad y Apache: mod_ssl.

stop

Detiene el servidor Web Apache.

configtest

Prueba la configuración de Apache sin detener, iniciar ni reiniciar el servidor Web. Dado que esta prueba se lleva a cabo cada vez que se inicia el servidor, se vuelve a cargar o se reinicia, normalmente no es necesario ejecutarla de forma explícita.

restart

Primero detiene el servidor Web y luego lo vuelve a iniciar.

try-restart

Reinicia el servidor Web si se está ejecutando.

restart-hup

Reinicia el servidor Web Apache enviándole una señal SIGHUP. Normalmente no se utiliza.

graceful y reload

Detiene el servidor Web invitando a todos los procesos de Apache en horquilla a que terminen primero su solicitud antes de cerrar. A medida que se van finalizando los procesos, se van reemplazando por procesos recién iniciados, lo cual resulta en un "reinicio" completo de Apache.

[Tip]Sugerencia

rcapache2 reload es el método preferido para reiniciar Apache en los entornos de producción, ya que permite servir a todos los clientes sin causar cortes en la conexión.

status

Comprueba el estado del tiempo de ejecución del servidor Web Apache.

Ejemplo 46.7. Ejemplo de cuándo iniciar y detener Apache

tux@sun # rcapache2 status
Checking for httpd2:                                  unused

tux@sun # rcapache2 configtest
Syntax OK

tux@sun # rcapache2 start
Starting httpd2 (prefork)                             done

tux@sun # rcapache2 status
Checking for httpd2:                                  running

tux@sun # rcapache2 graceful
Reload httpd2 (graceful restart)                      done

tux@sun # rcapache2 status
Checking for httpd2:                                  running 

Un archivo de configuración defectuoso puede hacer que Apache no se inicie correctamente o no se inicie en absoluto. Si no se inicia, es posible que ni siquiera aparezca un mensaje. Compruebe siempre en el registro de errores principal la información de inicio y reinicio.