46.2. Instalación

Apache se ejecuta en SUSE Linux "tal cual" con una configuración estándar predefinida. Si sigue las instrucciones de este capítulo, dispondrá de un servidor Web Apache instalado y funcionando en muy poco tiempo. Debe ser el usuario Root para instalar y configurar Apache.

46.2.1. Instalación de Apache con YaST

El paquete SUSE Linux apache2 difiere en cuanto al sistema de archivos y diseño de la aplicación del paquete de software estándar disponible en el sitio Web de Apache (http://httpd.apache.org). La siguiente sección describe detalladamente la instalación del paquete SUSE Linux apache2 e indica las variaciones en caso de que existan.

Para instalar un servidor Web sencillo, siga estos pasos:

Procedimiento 46.1. Instalación rápida

  1. Inicie YaST en GUI o en modo de línea de comando.

  2. Seleccione Servicios de red+Servidor HTTP.

  3. Haga clic en Continuar para confirmar la instalación de los paquetes apache2 y apache2-prefork.

  4. Cuando haya finalizado la instalación, aparecerá el Apache Configuration Wizard (Asistente de configuración de Apache) y podrá iniciar la configuración del servidor Web.

El inconveniente que supone seguir el procedimiento indicado anteriormente es que no existe compatibilidad con PHP y con la base de datos. Para instalar el servidor Web de modo que sea compatible con PHP y con la base de datos, siga estos pasos:

Procedimiento 46.2. Instalación de un servidor Web sencillo

  1. Inicie YaST en GUI o en modo de línea de comando.

  2. Seleccione Software+Instalar/desinstalar software.

  3. Elija Selecciones en Filtro y, a continuación, seleccione Servidor Web sencillo con Apache2.

  4. Pulse Aceptar.

  5. Confirme la instalación de los paquetes dependientes para finalizar el proceso de instalación de SUSE Linux Apache2.

Para usuarios avanzados, SUSE Linux ofrece una selección de paquetes personalizados. Para realizar una instalación personalizada de un servidor Web, siga estos pasos:

Procedimiento 46.3. Instalación de Apache RPM por defecto con YaST

  1. Inicie YaST en GUI o en modo de línea de comando. Seleccione Software+Instalar/desinstalar software.

  2. Seleccione Buscar en Filtro y, a continuación, apache2 en el campo Buscar.

  3. Seleccione apache2 para la instalación.

  4. Para realizar la selección del módulo lleve a cabo los pasos 2 y 3. Consulte Sección 46.5, “Módulos de Apache”.

  5. Después de la selección, pulse Aceptar.

  6. Se le solicitará que seleccione una de las dependencias necesarias para el paquete apache2-MPM: apache2-prefork o apache2-worker. Consulte la Sección 46.2.2, “Módulos de multiprocesamiento” si desea más información sobre las diferencias entre ambos. Si no está seguro, seleccione el paquete apache2-prefork que es el paquete por defecto para los sistemas operativos basados en Unix y, a continuación, pulse Aceptar.

  7. Confirme la instalación de los paquetes dependientes para finalizar el proceso de instalación de SUSE Linux Apache2.

[Note]Inicio de un servidor Web

La instalación de Apache no inicia el servidor Web de forma automática. Consulte la Sección 46.3.3, “Activación, inicio y detención de Apache” para obtener más información acerca del control del encendido y apagado de Apache.

46.2.2. Módulos de multiprocesamiento

Tal y como se ha mencionado en Instalación de Apache RPM por defecto con YaST, SUSE Linux ofrece dos módulos de multiprocesamiento (MPM) distintos para su uso con Apache. Los MPM son los responsables de aceptar y gestionar peticiones al servidor Web, por lo que representan el núcleo del software del servidor Web.

46.2.2.1. Módulo MPM prefork

El módulo MPM prefork implementa un servidor Web sin hilos y previo a la bifurcación. Hace que el servidor Web se comporte de manera similar a la versión 1.x de Apache en el sentido en que aísla cada petición y la gestiona bifurcando un proceso hijo independiente. Por lo tanto, las peticiones problemáticas no pueden afectar a otras, lo que evita el bloqueo del servidor Web.

A pesar de que ofrece más estabilidad gracias a este enfoque basado en procesos, el módulo MPM prefork consume más recursos de sistema que su homólogo, el módulo MPM worker. El módulo MPM prefork está considerado el MPM por defecto para los sistemas operativos basados en Unix.

[Important]MPM en este documento

En este documento se presupone que se utiliza Apache con el módulo MPM prefork.

46.2.2.2. Módulo MPM worker

El módulo MPM worker ofrece un servidor Web de múltiples hilos. Un hilo es una forma “más ligera” de un proceso. La ventaja de un hilo sobre un proceso es el bajo consumo de recursos. En lugar de bifurcar sólo procesos hijo, el módulo MPM worker responde a las peticiones mediante hilos con los procesos del servidor. Los procesos hijos previos a la bifurcación son de múltiples hilos.

Este enfoque mejora el rendimiento de Apache al consumir menos recursos de sistema que el módulo MPM prefork. Un gran inconveniente es la estabilidad del módulo MPM worker: si un hilo se daña, todos los hilos de un proceso pueden verse afectados. En el peor de los casos, puede llevar a que el servidor se bloquee. Sobre todo cuando se usa CGI (tal y como se describe en la Sección 46.5.1.2, “Interfaz común de gateway (CGI): mod_cgi) con Apache y una gran carga, se pueden producir errores internos de servidor debidos a hilos que no pueden comunicarse con los recursos del sistema.

Otro argumento en contra del uso de MPM worker con Apache es que no todos los módulos de Apache disponibles (consulte la Sección 46.5, “Módulos de Apache”) son hilos de proceso seguro y, por tanto, no pueden usarse con MPM worker.

[Warning]PHP como módulo de Apache (mod_php)

No todos los módulos PHP disponibles son hilos de proceso seguro. Se desaconseja el uso de MPM worker con mod_php.

46.2.3. Sistema de archivos y disposición de aplicaciones por defecto

SUSE Linux coloca los archivos del paquete de Apache en ubicaciones por defecto. Aquí se indican las ubicaciones de los archivos más importantes.

46.2.3.1. Binarios

La mayoría de los archivos ejecutables en SUSE Linux Apache llevan un 2 adjunto. Esto simplifica la diferenciación de archivos binarios entre una instalación paralela de Apache 1.x y Apache 2.x.

/usr/sbin/httpd2

Enlace simbólico que apunta al módulo de multiprocesamiento elegido, tal y como se describe en la Sección 46.2.2, “Módulos de multiprocesamiento”. El ajuste por defecto es httpd2-prefork. El enlace simbólico se mantiene al día mediante el guión de inicio según el ajuste de configuración del sistema del MPM.

/usr/sbin/httpd2-prefork

El ejecutable de Apache2 en sí.

/usr/sbin/apache2ctl

Guión de control proporcionado por el proyecto Apache HTTPD para iniciar y detener el servidor Web. Consulte la Sección 46.3.3, “Activación, inicio y detención de Apache” para obtener más información o ejecute /usr/sbin/apache2ctl help.

/etc/init.d/apache2

Guión de inicio y detención que brinda integración total en la instalación de SUSE Linux e inicia Apache al arrancar. Comprueba la existencia de una configuración válida antes de iniciar y detener el servidor y sobrescribe la ubicación de la configuración. Permite incluir fácilmente más archivos de configuración, cargar módulos e incluso iniciar una instancia del servidor independiente sin tener que modificar el guión.

/usr/sbin/rcapache2

Un útil enlace simbólico para /etc/init.d/apache2, ya que /etc/init.d/ no está en la vía por defecto. Simplemente use rcapache2 start para iniciar Apache.

/usr/sbin/htpasswd2

Utilidad para generar contraseñas cifradas para la autenticación basada en .htaccess. Consulte la página Man htpasswd2(1) para ver detalles acerca de cómo utilizar la herramienta.

46.2.3.2. Archivos de configuración

La mayoría de los archivos de configuración residen en la ubicación /etc/apache2. Para obtener información sobre cómo cambiar los ajustes de configuración, consulte la Sección 46.3, “Configuración”.

/etc/apache2/httpd.conf

Archivo de configuración de nivel superior. De ser posible, evite aplicar cambios en este archivo. Incluye sobre todo otros archivos de configuración y declara ajustes globales.

/etc/apache2/*.conf

Algunos módulos externos de Apache colocan sus archivos de configuración en el directorio /etc/apache2/, generalmente antecedidos por el nombre del módulo en sí (mód_*.conf).

/etc/apache2/conf.d/*

Directorio que contiene otros archivos de configuración que acompañan a algunos paquetes. Para ver un ejemplo, consulte la Sección 46.5.3.2, “PHP: mod_php4, mod_php5.

/etc/apache2/vhosts.d/*

Directorio con archivos de configuración opcionales para hosts virtuales. Para obtener información detallada, consulte la Sección 46.4, “Hosts virtuales”.

/etc/sysconfig/apache2

Archivo de configuración de SUSE Linux en relación con Apache2. Contiene todos los parámetros de configuración relevantes para controlar el servidor Web Apache. YaST utiliza /etc/sysconfig/apache2 para configurar Apache según se describe en la Sección 46.3.1, “Configuración de Apache con YaST”. También se puede editar manualmente siguiendo las instrucciones que se indican en la Sección 46.3.2, “Configuración manual de Apache”.

46.2.3.3. Archivos de registro

Por defecto, Apache proporciona información acerca del estado del tiempo de ejecución en los siguientes archivos:

/var/log/apache2/error_log

Apache registra los avisos de inicio y cierre, así como todos los errores de tiempo de ejecución, en este archivo.

/var/log/apache2/access_log

Todas las peticiones realizadas al servidor Web se registran en este archivo. El formato por defecto de las entradas es un formato combinado que muestra información sobre el agente de usuario y el host que envía la petición a la URI de referencia.

46.2.3.4. Raíz de documentos

El directorio físico /srv/www/htdocs es la ubicación por defecto desde la que Apache sirve páginas Web. Este directorio funciona como “directorio raíz” para las peticiones del cliente. Para publicar páginas Web con Apache, almacene los archivos jerárquicamente o en este directorio.

Una dirección URL como http://www.ejemplo.com/index.html hace referencia a /srv/www/htdocs/index.html en la configuración por defecto de Apache en SUSE Linux para un dominio llamado ejemplo.com.

46.2.4. Creación manual de módulos

Apache se ha creado con un enfoque modular, lo que significa que la capacidad del software del servidor Web se proporciona a través de diferentes módulos. Así, los usuarios avanzados pueden ir extendiendo Apache creando módulos personalizados. Consulte las páginas Man que se mencionan a continuación para obtener información más detallada.

46.2.4.1. apache2-devel

Para poder desarrollar módulos de Apache o compilar módulos de otros fabricantes, es necesario disponer del paquete apache2-devel, junto con las correspondientes herramientas de desarrollo. apache2-devel contiene también las herramientas apxs2, necesarias para compilar módulos adicionales para Apache.

46.2.4.2. apxs2

Los binarios apxs2 se encuentran en /usr/sbin:

  • /usr/sbin/apxs2: adecuado para crear un módulo de extensión que funcione con cualquier MPM. La ubicación de instalación es /usr/lib/apache2.

  • /usr/sbin/apxs2-prefork: adecuado para módulos MPM de prefork. La ubicación de instalación es /usr/lib/apache2-prefork.

  • /usr/sbin/apxs2-worker: adecuado para módulos MPM de worker.

apxs2 instala módulos que todos los MPM puedan utilizar. Los otros dos programas instalan módulos que sólo puedan utilizar los MPM respectivos. apxs2 instala módulos en /usr/lib/apache2 y apxs2-prefork en /usr/lib/apache2-prefork.

apxs2 habilita la compilación e instalación de módulos a partir del código fuente (incluidos los cambios necesarios en los archivos de configuración), tras lo cual se crean objetos compartidos dinámicos (DSO) que se pueden cargar en Apache en tiempo de ejecución. Instale un módulo desde el código fuente con los comandos cd /path/to/module/source; apxs2 -c -i mod_foo.c. Las otras opciones de apxs2 se describen en la página Man apxs2(1). Los módulos deben después habilitarse en /etc/sysconfig/apache2 mediante la entrada APACHE_MODULES, tal y como se describe en la Sección 46.3.2, “Configuración manual de Apache”.