Compilar Apache desde código fuente

Actualizado el domingo, 19 noviembre, 2017

Compilar Apache desde código fuente. El servidor HTTP Apache es uno de los mas conocidos y usados que existen en la red, es opensource y destaca por ser un servidor web multiplataforma. Esta publicado bajo los términos de Apache License 2.0. Apache es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo el auspicio de la Apache Software Foundation.

Compilar Apache desde código fuente 1

En este articulo aprenderemos como compilar Apache 2.4 desde su código fuente, es una operación sencilla y nos permite una posterior personalización. También podemos donde y como se instala.

Para el ejemplo usaremos CentOS.

 

Compilar Apache

Instalamos las dependencias requeridas.

yum install -y wget pcre-devel openssl openssl-devel expat-devel

Miramos la pagina oficial y nos aseguramos de la ultima versión lanzada.

En este caso la ultima versión estable es la 2.4.29.

Compilar Apache desde código fuente 2

 

La descargamos.

wget -O /usr/src/httpd-2.4.29.tar.gz http://apache.ip-connect.vn.ua//httpd/httpd-2.4.29.tar.gz

Cambiamos de directorio y descomprimimos.
cd /usr/src

tar xfvz httpd-2.4.29.tar.gz

cd httpd-2.4.29

La compilación que vamos a realizar requiere apr y apr-util en el directorio srclib.
cd ./srclib

wget 

wget 

Los descomprimimos y modificamos sus nombres.
tar xfvz apr-1.5.2.tar.gz; mv apr-1.5.2 apr

tar xfvz apr-util-1.5.4.tar.gz; mv apr-util-1.5.4 apr-util

 

Configuramos Apache

Nos movemos al principal.

cd ../

Con «help», podemos ver las opciones de configuración, por si quieres hacer alguna modificación.
./configure --help

ejemplo de salida:
./configure \
--enable-layout=RedHat \
--prefix=/usr \
--enable-expires \
--enable-headers \
--enable-rewrite \
--enable-cache \
--enable-mem-cache \
--enable-speling \
--enable-usertrack \
--enable-module=so \
--enable-unique_id \
--enable-logio \
--enable-ssl=shared \
--with-ssl=/usr \
--enable-proxy=shared \
--with-included-apr

Continuamos con make.
make

Instalamos.
make install

En este momento ya tenemos apache instalado, ahora vamos con los servicios.

 

Configurar los servicios de inicio

Centos 7:

Creamos el archivo de inicio systemd.

nano /etc/systemd/system/httpd.service

Y le agregamos lo siguiente:
[Unit]
Description=The Apache HTTP Server

[Service]
Type=forking
PIDFile=/var/apache/httpd.pid
ExecStart=/usr/sbin/apachectl start
ExecReload=/usr/sbin/apachectl graceful
ExecStop=/usr/sbin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true


[Install]
WantedBy=multi-user.target

Guardamos, cerramos y activamos el inicio en el arranque del sistema.
systemctl enable httpd

Iniciamos.
systemctl start httpd

Si usas Centos 6, sería:
chkconfig --add httpd

chkconfig httpd on

service httpd start

Ya lo tenemos instalado y en marcha.

 

Comprobaciones

Al introducir en tu navegador web…

http://IP-del-SERVER

veras una pagina similar a esta:

Compilar Apache desde código fuente 3

 

También puedes verificar que apache funciona correctamente, con:

ps aux|grep httpd

Si quieres ver los módulos compilados,usa:
httpd -M

ejemplo de salida…
Loaded Modules:
 core_module (static)
 authn_file_module (static)
 authn_default_module (static)
 authz_host_module (static)
 authz_groupfile_module (static)
 authz_user_module (static)
 authz_default_module (static)
 auth_basic_module (static)
 cache_module (static)
 mem_cache_module (static)
 include_module (static)
 filter_module (static)
 log_config_module (static)
 logio_module (static)
 env_module (static)
 expires_module (static)
 headers_module (static)
 usertrack_module (static)
      ..................
           ..................

 

El archivo de configuración lo tienes en:

/etc/httpd/conf/httpd.conf

Si quieres habilitar el SSL en httpd.conf, debes descomentar…
LoadModule ssl_module modules/mod_ssl.so

Y agregar el puerto ssl.
Listen 443

 

Recuerda que cada modificación que realices, debes reiniciar reiniciar el servicio.

Agregar comentario