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.
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.
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:
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.