Este documento cubre la compilación e instalación del servidor HTTP Apache en sistemas Unix y similares a Unix únicamente. Para compilar e instalar en Windows, consulte Uso del servidor HTTP Apache con Microsoft Windows y Compilación de Apache para Microsoft Windows. Para otras plataformas, consulte la documentación de la plataforma.

Usos de Apache httpd libtool y autoconf para crear un entorno de construcción que se parezca a muchos otros proyectos de código abierto.

Si está actualizando de una versión secundaria a la siguiente (por ejemplo, 2.4.9 a 2.4.10), pase a la sección de actualización.

Visión general para los impacientes

Instalación en Fedora / CentOS / Red Hat Enterprise Linux
sudo yum install httpd
sudo systemctl enable httpd
sudo systemctl start httpd

Las versiones más recientes de estas distribuciones usan dnf en vez de yum. Ver la documentación del proyecto Fedora para notas específicas de la plataforma.

Instalación en Ubuntu / Debian
sudo apt install apache2
sudo service apache2 start

Ver Documentación de Ubuntu para notas específicas de la plataforma.

Instalando desde la fuente
Descargar Descargue la última versión de http://httpd.apache.org/download.cgi
Extraer
$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN
Configurar
$ ./configure --prefix=PREFIX
Compilar
$ make
Instalar en pc
$ make install
Personalizar
$ vi PREFIX/conf/httpd.conf
Prueba
$ PREFIX/bin/apachectl -k start

NN debe reemplazarse con el número de versión actual, y PREFIJO debe reemplazarse con la ruta del sistema de archivos en la que se debe instalar el servidor. Si PREFIJO no se especifica, por defecto es /usr/local/apache2.

Cada sección del proceso de compilación e instalación se describe con más detalle a continuación, comenzando con los requisitos para compilar e instalar Apache httpd.

¿No ve su plataforma favorita mencionada aquí? Ven y ayúdanos a mejorar este documento.

Requisitos

Existen los siguientes requisitos para construir Apache httpd:

APR y APR-Util
Asegúrese de tener APR y APR-Util ya instalados en su sistema. Si no lo hace, o prefiere no usar las versiones proporcionadas por el sistema, descargue las últimas versiones de APR y APR-Util de APR de Apache, descomprímalos en /httpd_source_tree_root/srclib/apr y /httpd_source_tree_root/srclib/apr-util (asegúrese de que los nombres de directorio no tengan números de versión; por ejemplo, la distribución APR debe estar en / httpd_source_tree_root / srclib / apr /) y use ./configure‘s --with-included-apr opción. En algunas plataformas, es posible que deba instalar el correspondiente -dev paquetes para permitir que httpd se compile contra su copia instalada de APR y APR-Util.
Biblioteca de expresiones regulares compatible con Perl (PCRE)
Esta biblioteca es necesaria pero ya no está incluida con httpd. Descarga el código fuente de http://www.pcre.orgo instale un puerto o paquete. Si su sistema de compilación no puede encontrar el script pcre-config instalado por la compilación de PCRE, apúntelo usando el --with-pcre parámetro. En algunas plataformas, es posible que deba instalar el correspondiente -dev paquete para permitir que httpd se compile contra su copia instalada de PCRE.
Espacio del disco
Asegúrese de tener al menos 50 MB de espacio libre temporal en disco disponible. Después de la instalación, el servidor ocupa aproximadamente 10 MB de espacio en disco. Los requisitos reales de espacio en disco variarán considerablemente según las opciones de configuración elegidas, los módulos de terceros y, por supuesto, el tamaño del sitio web o los sitios que tiene en el servidor.
Compilador ANSI-C y sistema de compilación
Asegúrese de tener instalado un compilador ANSI-C. los Compilador GNU C (GCC) desde el Fundación de Software Libre (FSF) es recomendado. Si no tiene GCC, al menos asegúrese de que el compilador de su proveedor sea compatible con ANSI. Además, tu PATH debe contener herramientas de construcción básicas como make.
Mantenimiento preciso del tiempo
Los elementos del protocolo HTTP se expresan como la hora del día. Entonces, es hora de investigar la configuración de alguna función de sincronización de tiempo en su sistema. Por lo general, el ntpdate o xntpd Para ello se utilizan programas que se basan en el Protocolo de tiempo de red (NTP). Ver el Página de inicio de NTP para obtener más detalles sobre el software NTP y los servidores horarios públicos.
Perl 5 [OPTIONAL]
Para algunos de los scripts de soporte como apxs o dbmmanage (que están escritos en Perl) se requiere el intérprete de Perl 5 (las versiones 5.003 o posteriores son suficientes). Si el intérprete de Perl 5 no es encontrado por el configure script, no podrá utilizar los scripts de soporte afectados. Por supuesto, aún podrá compilar y usar Apache httpd.

Descargar

El servidor HTTP Apache se puede descargar desde el Sitio de descarga del servidor HTTP Apache, que enumera varios espejos. La mayoría de los usuarios de Apache en sistemas similares a Unix estarán mejor descargando y compilando una versión fuente. El proceso de construcción (que se describe a continuación) es sencillo y le permite personalizar su servidor para que se adapte a sus necesidades. Además, las versiones binarias a menudo no están actualizadas con las últimas versiones fuente. Si descarga un binario, siga las instrucciones del INSTALL.bindist archivo dentro de la distribución.

Después de la descarga, es importante verificar que tiene una versión completa y sin modificar del servidor HTTP Apache. Esto se puede lograr probando el tarball descargado con la firma PGP. Los detalles sobre cómo hacer esto están disponibles en el página de descarga y un ejemplo extendido está disponible que describe el uso de PGP.

Extraer

Extraer la fuente del tarball del servidor HTTP Apache es una simple cuestión de descomprimir y luego deshacer:

$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar

Esto creará un nuevo directorio bajo el directorio actual que contiene el código fuente para la distribución. Debería cd en ese directorio antes de proceder con la compilación del servidor.

Configurar el árbol de fuentes

El siguiente paso es configurar el árbol de fuentes de Apache para su plataforma particular y requisitos personales. Esto se hace usando el script. configure incluido en el directorio raíz de la distribución. (Los desarrolladores que descarguen una versión inédita del árbol de fuentes de Apache deberán tener autoconf y libtool instalado y necesitará ejecutar buildconf antes de continuar con los siguientes pasos. Esto no es necesario para los lanzamientos oficiales).

Para configurar el árbol de origen usando todas las opciones predeterminadas, simplemente escriba ./configure. Para cambiar las opciones predeterminadas, configure acepta una variedad de variables y opciones de línea de comando.

La opción más importante es la ubicación. --prefix donde Apache se instalará más tarde, porque Apache debe configurarse para que esta ubicación funcione correctamente. Es posible un control más preciso de la ubicación de los archivos con opciones de configuración adicionales.

También en este punto, puede especificar qué características desea incluir en Apache habilitando y deshabilitando módulos. Apache viene con una amplia gama de módulos incluidos por defecto. Se compilarán como objetos compartidos (DSO) que se pueden cargar o descargar en tiempo de ejecución. También puede optar por compilar módulos estáticamente utilizando la opción --enable-module=static.

Los módulos adicionales se habilitan usando el --enable-module opción, donde módulo es el nombre del módulo con la mod_ cadena eliminada y con cualquier guión bajo convertido en un guión. Del mismo modo, puede deshabilitar módulos con el --disable-module opción. Tenga cuidado al utilizar estas opciones, ya que configure no puede advertirle si el módulo que especifica no existe; simplemente ignorará la opción.

Además, a veces es necesario proporcionar la configure script con información adicional sobre la ubicación de su compilador, bibliotecas o archivos de encabezado. Esto se hace pasando variables de entorno o opciones de línea de comando a configure. Para obtener más información, consulte el configure página de manual. O invocar configure utilizando el --help opción.

Para una breve impresión de las posibilidades que tiene, aquí hay un ejemplo típico que compila Apache para el árbol de instalación /sw/pkg/apache con un compilador particular y banderas más los dos módulos adicionales mod_ldap y mod_lua:

$ CC="pgcc" CFLAGS="-O2" 
./configure --prefix=/sw/pkg/apache 
--enable-ldap=shared 
--enable-lua=shared

Cuando configure Una vez ejecutado, tomará varios minutos probar la disponibilidad de funciones en su sistema y construir Makefiles que luego se usarán para compilar el servidor.

Detalles sobre todos los diferentes configure las opciones están disponibles en el configure página de manual.

Construir

Ahora puede construir las distintas partes que forman el paquete Apache simplemente ejecutando el comando:

$ make

Tenga paciencia aquí, ya que una configuración básica tarda varios minutos en compilarse y el tiempo variará ampliamente según su hardware y la cantidad de módulos que haya habilitado.

Instalar en pc

Ahora es el momento de instalar el paquete en la instalación configurada PREFIJO (ver --prefix opción anterior) ejecutando:

$ make install

Este paso normalmente requerirá privilegios de root, ya que PREFIJO suele ser un directorio con permisos de escritura restringidos.

Si está actualizando, la instalación no sobrescribirá sus archivos o documentos de configuración.

Personalizar

A continuación, puede personalizar su servidor HTTP Apache editando los archivos de configuración en PREFIX/conf/.

$ vi PREFIX/conf/httpd.conf

Eche un vistazo al manual de Apache en PREFIX/docs/manual/ o consultar http://httpd.apache.org/docs/2.4/ para obtener la versión más reciente de este manual y una referencia completa de los directivas de configuración.

Prueba

Ahora puede iniciar su servidor HTTP Apache ejecutando inmediatamente:

$ PREFIX/bin/apachectl -k start

A continuación, debería poder solicitar su primer documento a través de la URL http://localhost/. La página web que ve se encuentra debajo de la DocumentRoot, que normalmente será PREFIX/htdocs/. Luego, detenga el servidor nuevamente ejecutando:

$ PREFIX/bin/apachectl -k stop

Actualización

El primer paso para actualizar es leer el anuncio de lanzamiento y el archivo CHANGES en la distribución de la fuente para encontrar cualquier cambio que pueda afectar a su sitio. Al cambiar entre versiones principales (por ejemplo, de 2.0 a 2.2 o de 2.2 a 2.4), es probable que haya grandes diferencias en la configuración de tiempo de compilación y tiempo de ejecución que requerirán ajustes manuales. Todos los módulos también deberán ser actualizado para adaptarse a los cambios en la API del módulo.

La actualización de una versión secundaria a la siguiente (por ejemplo, de 2.2.55 a 2.2.57) es más fácil. los make install El proceso no sobrescribirá ninguno de sus documentos, archivos de registro o archivos de configuración existentes. Además, los desarrolladores hacen todo lo posible para evitar cambios incompatibles en el configure opciones, configuración en tiempo de ejecución o la API del módulo entre versiones menores. En la mayoría de los casos, debería poder utilizar un configure línea de comandos, un archivo de configuración idéntico, y todos sus módulos deberían seguir funcionando.

Para actualizar en versiones menores, comience por buscar el archivo config.nice en el build directorio de su servidor instalado o en la raíz del árbol de origen de su instalación anterior. Esto contendrá la exacta configure línea de comando que usó para configurar el árbol de origen. Luego, para actualizar de una versión a la siguiente, solo necesita copiar el config.nice en el árbol de origen de la nueva versión, edítelo para realizar los cambios deseados y luego ejecute:

$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start

Siempre debe probar cualquier versión nueva en su entorno antes de ponerla en producción. Por ejemplo, puede instalar y ejecutar la nueva versión junto con la anterior utilizando una --prefix y un puerto diferente (ajustando el Listen directiva) para probar las incompatibilidades antes de realizar la actualización final.

Puede pasar argumentos adicionales a config.nice, que se adjuntará a su original configure opciones:

$ ./config.nice --prefix=/home/test/apache --with-port=90

Paquetes de terceros

Un gran número de terceros proporcionan sus propias distribuciones empaquetadas del servidor HTTP Apache para su instalación en plataformas particulares. Esto incluye las diversas distribuciones de Linux, varios paquetes de Windows de terceros, Mac OS X, Solaris y muchos más.

Nuestra licencia de software no solo permite, sino que fomenta, este tipo de redistribución. Sin embargo, da lugar a una situación en la que el diseño de configuración y los valores predeterminados de su instalación del servidor pueden diferir de lo que se indica en la documentación. Si bien es lamentable, no es probable que esta situación cambie pronto.

A descripción de estas distribuciones de terceros se mantiene en la wiki del servidor HTTP y debería reflejar el estado actual de estas distribuciones de terceros. Sin embargo, deberá familiarizarse con los procedimientos de instalación y administración de paquetes de su plataforma en particular.