Gentoo Logo

Actualizar Apache

Contenido:

1.  Actualización de versiones <2.2.6-r4

Los ebuilds de apache han utilizado /etc/apache2/apache2-builtin-mods durante mucho tiempo para seleccionar los módulos a construir al momento de compilar. Sin embargo, este comportamiento presente varias desventajas:

  • No es posible seleccionar los módulos a encastrar en el emerge inicial.
  • Portage no sabe cuáles módulos han sido instalados. Esto es particularmente irritante en el caso de paquetes binarios.
  • Portage intentará sobreescribir apache2-builtin-mods en cada actualización.

Para rectificar esta situación, se ha decidido prescindir de /etc/apache2/apache2-builtin-mods migrando a la nueva variable de entorno USE_EXPAND APACHE2_MODULES. Para convertir su selección personalizada de módulos al nuevo formato, use la siguiente orden:

Listado de Código 1.1: Convertir apache2-builtin-mods a APACHE2_MODULES

$ echo APACHE2_MODULES=\"$(sed '/^mod_/s/mod_\(.*\)\s\+\(shared\|static\)/\1/;t n;d;:n' /etc/apache2/apache2-builtin-mods)\" >> /etc/make.conf
# rm /etc/apache2/apache2-builtin-mods

(Ahora puede actualizar apache de manera segura:)
# emerge -uva '>=www-servers/apache-2.2.6-r4'

Adicionalmente al nuevo APACHE2_MODULES, los parámetros USE locales han sido re-ordenados:

  • Los parámetros USE MPM han sido reubicados a la variable de entorno USE_EXPAND APACHE2_MPMS
  • no-suexec es ahora suexec
  • static-modules es ahora static

Para una descripción más detallada y una correspondencia entre parámetros USE anteriores y actuales vea see below.

2.  Actualizar versiones <2.0.52-r3

Introducción

El estado de apache y sus módulos en Gentoo se estaba volviendo penoso. Había ciertos problemas que causaron inconvenientes en el soporte e hicieron difícil el trabajo del grupo de apache:

  • La configuración que venía en Gentoo era terriblemente distinta a la que la mayoría de usuarios esperan
  • Muchos módulos usaban código parecido pero todos hacían las cosas a su manera
  • La mayoría de los módulos no estaban mantenidos demasiado bien - debido principalmente al gran número de ellos disponible
  • Los módulos no tenían una configuración estándar
  • Algunos módulos podían soportar ambas versiones de Apache pero los ebuilds no lo controlaban
  • Las opciones disponibles en apache no estaban disponibles para los usuarios de Gentoo (por ejemplo, los MPMs --Módulos de MultiProcesamiento--)
  • Los bugs para apache se estaban acumulando

Este documento detalla el modo de actualizar sin estropear su sistema. Si es desarrollador o le gustaría saber qué hemos cambiado, o cómo tienen que modificarse los ebuilds para aprovecharse de nuestra eclass, revise el Apache Developer Reference.

Actualización

Ha habido muchos cambios en la manera como apache funciona en Gentoo. Cada paquete que está relacionado directamente con Apache, necesita ser actualizado y algunas cosas que funcionaban anteriormente dejarán de hacerlo.

Lo primero es averiguar cuáles paquetes debemos actualizar. Puede hacerlo mediante la herramienta equery que forma parte del paquete app-portage/gentoolkit.

Listado de Código 2.1: Buscar paquetes para actualizar

$ equery depends www-servers/apache
[ Searching for packages depending on www-servers/apache... ]
dev-db/phpmyadmin-2.5.6
dev-php/mod_php-4.3.10
dev-php/phpsysinfo-2.1-r2
net-www/mod_bandwidth-2.0.5
net-www/mod_layout-4.0.1a
net-www/mod_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
www-apache/mod_ldap_userdir-1.1.4
www-apache/mod_loopback-1.04
www-apache/mod_watch-3.18
www-apps/viewcvs-0.9.2_p20030430

Importante: Los paquetes que tiene instalados pueden ser considerablemente distintos; asegúrese de ejecutar esta orden.

Aviso: Hay algunos módulos y paquetes que dependen de apache y que todavía no han sido actualizados. Por favor, busque en bugzilla cualquier paquete crítico que utilice con Apache.

Muchas aplicaciones web no están afectadas de ningún modo mientras que la mayoría utilizan la eclass webapp la cual se preocupa de instalarlas adecuadamente. Puede que quiera comprobar y ver si hay una nueva versión.

Ya que hemos añadido nuevos parámetros USE, tal vez quiera revisarlos e incluir en /etc/portage/package.use las líneas apropiadas. Para más detalles, vea los parámetros USE soportados por Apache

Listado de Código 2.2: Revisar las configuraciones de parámetros USE y reconstruir

(Comprobar los parámetros USE y actualizaciones necesarias)
# emerge --pretend --verbose --update --newuse --deep apache subversion \
mod_php mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 \
mod_random mod_throttle mod_watch

(Actualizar los paquetes)
# emerge --verbose --update --newuse --deep apache subversion mod_php \
mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 mod_random \
mod_throttle mod_watch

(Puede ser más fácil actualizar todo el sistema en vez de lo
anterior)
# emerge --ask --verbose --update --newuse --deep world

Ahora tiene que reconfigurar apache y sus módulos. Empiece usando etc-update o dispatch-conf para actualizar los ficheros /etc/init.d y /etc/conf.d. Notará que sus ficheros de configuración de Apache no se verán en las actualizaciones - esto es debido a que todos los ficheros de configuración se han movido.

Si ha hecho cambios en los anteriores apache.conf y commonapache.conf originales, tendrá entonces que migrar sus modificaciones a /etc/apache{|2}/httpd.conf. También han cambiado las ubicaciones de la configuración para los módulos y hosts virtuales -- ahora se encuentran en /etc/apache2/modules.d y /etc/apache2/vhosts.d respectivamente.

Cuando haya terminado de migrar sus modificaciones al nuevo fichero de configuración, tendrá entonces que eliminar los antiguos ficheros de configuración (o moverlos a un lugar seguro). El nuevo /etc/init.d/apache{|2} comprueba que no existan estos ficheros y no le permite iniciar apache a menos que los haya eliminado, indicándole así que lo ha reconfigurado utilizando las nuevas rutas.

Nota: Muchos módulos que, por defecto, solían estar habilitados ahora no lo están. Si son módulos de Apache incorporados, entonces elimine los comentarios de las líneas apropiadas en httpd.conf. Si son módulos externos, compruebe sus ficheros .conf para ver si hay directivas IfDefine y añada el nombre a /etc/conf.d/apache{|2} para habilitarlo.

Ahora puede reiniciar apache.

Listado de Código 2.3: Reiniciar apache

# /etc/init.d/apache stop
# /etc/init.d/apache start

Si se topa con algún problema revise la Solución de problemas de Apache y si ello no le soluciona la duda, por favor, informe de ello en el Bugzilla de Gentoo. Cerciórese de incluir los módulos que tiene habilitados y, en el caso de utilizar Apache 2, con qué parámetros USE para MPM lo compiló (si utilizó alguno). También puede conectarse al canal #gentoo-apache de irc.freenode.net para obtener ayuda.

3.  Parámetros USE soportados por <2.2.6-r4

Hay parámetros USE que son locales para apache y sus módulos. Además, apache soporta otros muchos parámetros USE genéricos como, por ejemplo, ssl, pero el efecto que tienen en éste no difiere demasiado del efecto que tienen en otros paquetes, por lo que no se han incluido en la siguiente lista. Ejecute emerge --verbose --pretend apache para ver el listado completo de parámetros USE soportados.

Parámetro USE Descripción
apache2 Fijo si se usa la rama 2.0 de apache. No se debería fijar si se utiliza la 1.3. La eclass lo emplea para determinar a qué versión de apache depende.
debug Habilita un interfaz que permite que módulos externos se puedan enchufar y realizar alguna acción después que se produzca un error. Ya existen dos módulos mod_whatkilledus y mod_backtrace que lo utilizan.
doc Instala el manual apache y configuración.
ldap Instala mod_ldap y mod_auth_ldap/mod_authnz_ldap.
ssl Instala mod_ssl.
mpm-itk Construye el MPM itk
mpm-leader Construye el MPM leader
mpm-peruser Construye el MPM peruser
mpm-prefork Construye el MPM prefork
mpm-threadpool Construye el MPM threadpool
mpm-worker Construye el MPM worker
static-modules Enlaza estáticamente los módulos con el binario apache, por lo que no es necesario un LoadModule para cargar los módulos base en Apache.

Nota: Mientras hayan muchos parámetros USE mpm-* activos, estos se excluyen mutuamente. Debe habilitar uno y solo uno de ellos. (Si no habilita ninguno, mpm-prefork o mpm-worker serán usados, dependiendo de si el parámetro USE threads está establecido).

4.  Parámetros USE en versiones 2.2.6-r4 y subsiguientes

Con la llegada de APACHE2_MODULES, un re-ordenamiento de los parámetros USE se hizo necesaria. La siguiente tabla lista los parámetros USE para apache-2.2.6-r4 y subsiguientes y sus equivalentes en versiones anteriores.

Parámetro USE Parámetro USE anterior Descripción
debug debug Habilita un interfaz que permite que módulos externos se puedan enchufar y realizar alguna acción después que se produzca un error. Ya existen dos módulos mod_whatkilledus y mod_backtrace que lo utilizan.
doc doc Instala el manual apache y configuración.
ldap ldap Instala mod_ldap y mod_authnz_ldap
ssl ssl Instala mod_ssl
static static-modules Enlaza estáticamente los módulos con el binario apache, por lo que no es necesario un LoadModule para cargar los módulos base en apache.
suexec no-suexec Instala mod_suexec y el binario auxiliar suexec
threads threads Selecciona el MPM por defecto si este no está definido en APACHE2_MPMS

La siguiente tabla lista los APACHE2_MPMS soportados a partir de la versión apache-2.2.6-r4 y sus correspondientes parámetros USE locales.

Parámetro USE Parámetro USE anterior Descripción
event mpm-event Una variante experimental del MPM standard worker
itk mpm-itk Permite correr cada anfitrión virtual bajo un uid y gid separados
peruser mpm-peruser Peruser es una implementación funcional del MPM perchild que permite correr cada proceso hijo bajo su propio usuario y grupo, cada uno manejando su propio conjunto de anfitriones virtuales
prefork mpm-prefork Implementa un servidor web pre-forking y sin hilos
worker mpm-worker MPM que implementa un servidor web híbrido multi-hilo multi-proceso

La siguiente tabla lista los APACHE2_MODULES soportados a partir de apache-2.2.6-r4.

Parámetro USE Descripción
actions Proporciona la posibilidad de ejecutar guiones CGI dependiendo del tipo de medio o petición
alias Proporciona la posibilidad de mapear partes diferentes del sistema de archivos del anfitrión al árbol de documentación y para redireccionar URLs
asis Envía archivos que contengan sus propios encabezados HTTP
auth_basic Autentificación sencilla
auth_digest Autentificación de usuarios mediante condensados MD5
authn_alias Proporciona la posibilidad de crear servicios extendidos de autentificación basados en servicios actuales
authn_anon Permite el acceso "anónimo" a áreas con control de autentificación
authn_dbd Autentificación de usuarios mediante base de datos SQL
authn_dbm Autentificación de usuarios mediante archivos DBM
authn_default Módulo de autentificación por defecto
authn_file Autentificación de usuarios mediante archivos de texto
authz_dbm Autorización de grupos mediante archivos DBM
authz_default Módulo de autorización por defecto
authz_groupfile Autorización de grupos mediante archivos de texto
authz_host Autorización de grupos por medio de nombre de anfitrión (nombre o dirección IP)
authz_owner Autorización basada en la propiedad del archivo
authz_user Autorización de usuarios
autoindex Generación automática de índices, similar a la orden ls de Unix
cache Caches de contenido según URI
cern_meta Semántica de metaarchivos httpd según la CERN
charset_lite Especificación de traducción o recodificación de conjunto de caracteres
dav Funcionalidad para Distributed Authoring and Versioning (WebDAV)
dav_fs Servicio de sistema de archivos para mod_dav
dav_lock Módulo genérico de bloqueo para mod_dav
dbd Manejo de conecciones de bases de datos SQL
deflate Compresión de contenido antes de envío al cliente
dir Servicio para redireccionamiento en caso de "finalizar URL con barra" y servicio de archivos índice de directorios
disk_cache Manejador de cache de contenido según URI
dumpio Escribe toda la I/O a las bitácoras de error según especificación
env Modifica el entorno pasado a guiones CGI y páginas SSI
expires Generación de cabeceras HTTP Expires y Cache-Control de acuerdo a criterios especificados por el usuario
ext_filter Pasa el cuerpo de la respuesta a través de un programa externo antes de entregar al cliente
file_cache Almacena una list de archivos en memoria
filter Módulo de configuración del filtro con inteligencia sensible al contexto
headers Personalización de cabeceras HTTP de petición y respuesta
ident Verificación de identidad según RFC 1413
imagemap Procesamiento en servidor de mapas de imagen
include Documentos html analizados (parsed) en el servidor (Server Side Includes)
info Proporciona una descripción amplia de la configuración del servidor
log_config Registro en bitácora de peticiones realizadas al servidor
log_forensic Registro forense en bitácora de peticiones realizadas al servidor
logio Registro en bitácora de bytes de entrada y salida por petición
mem_cache Manejador de cache de contenido según URI
mime Asocia la extensión del archivo pedido con el comportamiento (manejadores y filtros) y contenido (mime-type, idioma, conjunto de caracteres y codificación) del mismo
mime_magic Determina el MIME type de un archivo examinando unos pocos bytes de su contenido
negotiation Proporciona negociación según contenido
proxy Servidor proxy/pasarela HTTP/1.1
proxy_ajp Módulo de soporte AJP para mod_proxy
proxy_balancer Extensión mod_proxy para balanceo de cargas
proxy_connect Extensión mod_proxy para manejar peticiones CONNECT
proxy_ftp Módulo de soporte FTP para mod_proxy
proxy_http Módulo de soporte HTTP para mod_proxy
rewrite Proporciona un motor de re-escritura en base a reglas para re-escribir dinámicamente URLs solicitados
setenvif Permite configurar variables de entorno en base a características de la petición
speling Intentará corregir URLs equivocados ingresados por usuarios ignorando la capitalización y permitiendo hasta un error ortográfico
status Proporciona información acerca de la actividad y desempeño del servidor
unique_id Proporciona una variable de entorno con identificado único por cada petición
userdir Directorios según usuario
usertrack Registro en bitácora de la actividad de clics por parte de usuarios según sitio web
version Configuración según versión
vhost_alias Proporciona anfitriones virtuales en masa configurados dinámicamente


Imprimir

Página actualizada 11 de diciembre, 2007

Sumario: Este documento describe el método que los usuarios finales deberían seguir para actualizar sin ningún riesgo sus instalaciones de apache.

Michael Stewart
Autor

Benedikt Boehm
Editor

Joshua Saddler
Editor

Enrique Barbeito García
Traductor

John Christian Stoddart
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.