Versión 2.0 del Servidor HTTP Apache
Pasar a usar Apache 2.0 si ahora usa Apache 1.3
Este documento recoge infomación crítica sobre el
proceso de actulización de la versión de Apache que
usa. Se trata de pequeños comentarios. Puede encontrar más
información tanto en Nuevas
funcionalidades, como en el archivo
src/CHANGES
.
Consulte también
Cambios en el proceso de configuración y compilación
- Apache usa ahora
autoconf
ylibtool
en el proceso de compilación. Este sistema es parecido aunque no igual al sistema APACI de Apache 1.3. - Además de la selección de módulos habitual que puede hacer al compilar, en Apache 2.0 la mayor parte del procesamiento de las petición es llevada a cabo por módulos de multiprocesamiento (MPMs).
Cambios en el proceso de configuración inicial del servidor
- Muchas directivas que pertenecían al core (núcleo)
del servidor en Apache 1.3 se encuentran ahora en distintos
módulos de multiprocesamiento. Si desea que el nuevo
servidor de comporte de la forma más parecida posible a
como lo hacía Apache 1.3, debe usar el módulo de
multiprocesamiento
prefork
. Otros módulos de multiprocesamiento tienen diferentes directivas para controlar la creación de procesos y el procesamiento de peticiones. - El módulo proxy ha
sido remodelado para ponerlo al día con la
especificación HTTP/1.1. Entre los cambios más
importantes está el que ahora el control de acceso al proxy
está dentro de un bloque
<Proxy>
en lugar de en un bloque<Directory proxy:>
. - El procesamiento de
PATH_INFO
(la información que aparece detrás de un nombre de fichero válido) ha cambiado en algunos módulos. Los módulos que fueron previamente implementados como un handler pero que ahora son implementados como un filtro puede que no acepten peticiones que incluyanPATH_INFO
. Filtros como INCLUDES o PHP están implementados sobre el handler principal (core handler), y por tanto rechazarán peticiones conPATH_INFO
. Puede usar la directivaAcceptPathInfo
para forzar al handler principal a aceptar peticiones conPATH_INFO
y por tanto restaurar la posibilidad de usarPATH_INFO
en server-side includes. - La directiva
CacheNegotiatedDocs
toma ahora como argumentoon
uoff
. Las instancias existentes deCacheNegotiatedDocs
deben reemplazarse porCacheNegotiatedDocs on
. -
La directiva
ErrorDocument
no usa ya dobles comillas al principio del argumento para indicar el mensaje de texto a mostrar. En lugar de esto, ponga entre comillas todo el mensaje. Por ejemplo,debe sustituirse porErrorDocument 403 "Mensaje
Si el segundo argumento no es una URL o una ruta válida a un archivo, será tratado como un mensaje de texto.ErrorDocument 403 "Mensaje"
- Las directivas
AccessConfig
yResourceConfig
han desaparecido. Las instancias existentes de estas directivas pueden ser sustituidas por directivasInclude
que tienen una funcionalidad equivalente. Si hacía uso de los valores por defecto de esas directivas sin incluirlas en los ficheros de configuración, puede que necesite añadirInclude conf/access.conf
eInclude conf/srm.conf
a su ficherohttpd.conf
. Para asegurar que Apache lee el fichero de configuración en el mismo orden que asumían las antiguas directivas, las directivasInclude
deben ser reemplazadas al final del ficherohttpd.conf
, con la desrm.conf
precediendo a la deaccess.conf
. - Las directivas
BindAddress
yPort
no existen ya. Las funcionalidades que ofrecían esas directivas están ahora cubiertas por la directivaListen
, que es mucho más flexible. - Otro uso de la directiva
Port
en Apache 1.3 era fijar el número de puerto que se usaba para URLs autoreferenciadas. La directiva equivalente en Apache 2.0 es la nueva directivaServerName
: este cambio se ha introducido para permitir la especificación del nombre de host y del número de puerto para URLs autorreferenciadas en una sola directiva. - La directiva
ServerType
ha dejado de existir. El método usado para servir peticiones está ahora determinado por la selección del módulo de multiprocesamiento. Actualmente no hay diseñado un módulo de multiprocesamiento que pueda ser ejecutado por inetd. - Los módulos
mod_log_agent
ymod_log_referer
que contenían las directivasAgentLog
,RefererLog
yRefererIgnore
han desaparecido. Los registros de "agente" y de "referer" están disponibles todavía usando la directivaCustomLog
del módulomod_log_config
. - Las directivas
AddModule
yClearModuleList
no están presentes en la nueva versión de Apache. Estas directivas se usaban para asegurar que los módulos pudieran activarse en el orden correcto. La nueva API de Apache 2.0 permite a los módulos especificar explícitamente su orden de activación, eliminando la necesidad de las antiguas directivas. - La directiva
FancyIndexing
se ha eliminado. La funcionalidad que cubría está ahora disponible a través de la opciónFancyIndexing
de la directivaIndexOptions
. - La técnica de negociación de contenido MultiViews
ofrecida por
mod_negotiation
es ahora más estricta en su algoritmo de selección de ficheros y solo seleccionará ficheros negociables. El antiguo comportamiento puede restaurarse usando la directivaMultiviewsMatch
. - (a partir de la versión 2.0.51)
La funcionalidad de la directiva
ErrorHeader
se ha unido con la de la directivaHeader
, porque se estaba usando un término equivocado. UseHeader always set foo bar
en lugar de conseguir el comportamiento deseado.
Cambios de menor importancia
- El módulo
mod_auth_digest
, que era experimental en Apache 1.3, es ahora un módulo estándar. - El módulo
mod_mmap_static
, que era experimental en Apache 1.3, ha sido sustituido por el módulomod_file_cache
. - La distribución de Apache ha sido reorganizada por
completo para que no contenga a partir de ahora el directorio
independiente
src
. En su lugar, el código fuente se ha organizado a partir del directorio principal de la distribución, y las intalaciones del servidor compilado deben hacerse en un directorio diferente.
Módulos de terceras partes
La API de Apache 2.0 ha sufrido grandes cambios respecto a la versión 1.3. Los módulos que se diseñaron para la API de Apache 1.3 no funcionarán si no se hacen las modificaciones necasarias para adaptarlos a Apache 2.0. En la documentación para desarrolladores puede encontrar información detallada sobre este asunto.