Actualizar Apache
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
el siguiente comando:
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
# 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.
Actualizando de 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 este comando usted mismo.
|
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 |
# 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
# 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
# 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 descomente las
línea apropiada en httpd.conf. Si son módulos externos, compruebe sus
ficheros .conf para ver si hay 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 scripts según
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 al comando 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 clicks 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 |
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|