RHEL 8 sigue ofreciendo Apache HTTP Server («httpd») como servidor web instalable a través de sus repositorios oficiales. La versión base utilizada en los paquetes precompilados para la versión 8 de este sistema operativo es la 2.4.37. Desgraciadamente, la versión de Apache httpd 2.5 todavía no está incluída en soporte de Red Hat ni ninguno de sus productos.
Vamos a ver los pasos de instalación, configuración y control del servidor web.
Instalación de Apache HTTPD
Podríamos instalar una versión más actual apache compilando fuentes, pero ese no es el objetivo de esta entrada. Aquí queremos usar la versión precompilada ofrecida por RHEL y CentOS a través de sus repositorios oficiales. Esto nos garantiza poder mantener el servicio actualizado y parcheado junto con el resto de paquetes ofrecidos por el fabricante, es rápido y seguro.
Primero revisamos qué versión de httpd hay disponible, podemos usar el comando dnf
o yum
, en el fondo es lo mismo:
# dnf info httpd
# yum info httpd
En este caso, vemos que la versión disponible es la 2.4.37 como ya comentábamos anteriormente:
[root@localhost ~]# dnf info httpd Updating Subscription Management repositories. Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 886 kB/s | 7.0 MB 00:08 Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 605 kB/s | 3.7 MB 00:06 Last metadata expiration check: 0:00:01 ago on Sat 18 May 2019 09:14:40 AM CEST. Available Packages Name : httpd Version : 2.4.37 Release : 11.module+el8.0.0+2969+90015743 Arch : x86_64 Size : 1.4 M Source : httpd-2.4.37-11.module+el8.0.0+2969+90015743.src.rpm Repo : rhel-8-for-x86_64-appstream-rpms Summary : Apache HTTP Server URL : https://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
La instalación es sencilla, añadid el parámetro install
a yum o dnf seguido del paquete:
# dnf install httpd
# yum install httpd
Si no utilizáis el parámetro -y
(recomendable no utilizarlo), probablemente tendréis que confirmar la instalación de HTTPD y sus dependencias así como la importación de llaves GPG de los repositorios, os dejo la salida completa de la ejecución:
[root@localhost ~]# dnf install httpd Updating Subscription Management repositories. Last metadata expiration check: 0:01:08 ago on Sat 18 May 2019 09:14:40 AM CEST. Dependencies resolved. ============================================================================================= Package Arch Version Repository Size ============================================================================================= Installing: httpd x86_64 2.4.37-11.module+el8.0.0+2969+90015743 rhel-8-for-x86_64-appstream-rpms 1.4 M Installing dependencies: apr x86_64 1.6.3-9.el8 rhel-8-for-x86_64-appstream-rpms 125 k apr-util x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-rpms 105 k httpd-tools x86_64 2.4.37-11.module+el8.0.0+2969+90015743 rhel-8-for-x86_64-appstream-rpms 101 k httpd-filesystem noarch 2.4.37-11.module+el8.0.0+2969+90015743 rhel-8-for-x86_64-appstream-rpms 34 k mod_http2 x86_64 1.11.3-2.module+el8.0.0+2969+90015743 rhel-8-for-x86_64-appstream-rpms 156 k mailcap noarch 2.1.48-3.el8 rhel-8-for-x86_64-baseos-rpms 39 k redhat-logos-httpd noarch 80.7-1.el8 rhel-8-for-x86_64-baseos-rpms 25 k Installing weak dependencies: apr-util-openssl x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-rpms 27 k apr-util-bdb x86_64 1.6.1-6.el8 rhel-8-for-x86_64-appstream-rpms 25 k Enabling module streams: httpd 2.4 Transaction Summary ============================================================================================= Install 10 Packages Total download size: 2.0 M Installed size: 5.5 M Is this ok [y/N]: y Downloading Packages: (1/10): apr-util-openssl-1.6.1-6.el8.x86_64.rpm 17 kB/s | 27 kB 00:01 (2/10): apr-util-bdb-1.6.1-6.el8.x86_64.rpm 15 kB/s | 25 kB 00:01 (3/10): apr-1.6.3-9.el8.x86_64.rpm 68 kB/s | 125 kB 00:01 (4/10): apr-util-1.6.1-6.el8.x86_64.rpm 215 kB/s | 105 kB 00:00 (5/10): httpd-tools-2.4.37-11.module+el8.0.0+2969+90015743.x 116 kB/s | 101 kB 00:00 (6/10): httpd-filesystem-2.4.37-11.module+el8.0.0+2969+90015 41 kB/s | 34 kB 00:00 (7/10): mod_http2-1.11.3-2.module+el8.0.0+2969+90015743.x86_ 241 kB/s | 156 kB 00:00 (8/10): redhat-logos-httpd-80.7-1.el8.noarch.rpm 65 kB/s | 25 kB 00:00 (9/10): mailcap-2.1.48-3.el8.noarch.rpm 68 kB/s | 39 kB 00:00 (10/10): httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 1.0 MB/s | 1.4 MB 00:01 --------------------------------------------------------------------------------------------- Total 527 kB/s | 2.0 MB 00:03 warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-rpms-9d3886b51bb367d7/packages/apr-util-openssl-1.6.1-6.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 4.9 MB/s | 5.0 kB 00:00 Importing GPG key 0xFD431D51: Userid : "Red Hat, Inc. (release key 2) <security@redhat.com>" Fingerprint: 567E 347A D004 4ADE 55BA 8A5F 199E 2F91 FD43 1D51 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Is this ok [y/N]: y Key imported successfully Importing GPG key 0xD4082792: Userid : "Red Hat, Inc. (auxiliary key) <security@redhat.com>" Fingerprint: 6A6A A7C9 7C88 90AE C6AE BFE2 F76F 66C3 D408 2792 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Is this ok [y/N]: y Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : apr-1.6.3-9.el8.x86_64 1/10 Running scriptlet: apr-1.6.3-9.el8.x86_64 1/10 Installing : apr-util-bdb-1.6.1-6.el8.x86_64 2/10 Installing : apr-util-1.6.1-6.el8.x86_64 3/10 Running scriptlet: apr-util-1.6.1-6.el8.x86_64 3/10 Installing : apr-util-openssl-1.6.1-6.el8.x86_64 4/10 Installing : httpd-tools-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 5/10 Installing : redhat-logos-httpd-80.7-1.el8.noarch 6/10 Installing : mailcap-2.1.48-3.el8.noarch 7/10 Running scriptlet: httpd-filesystem-2.4.37-11.module+el8.0.0+2969+90015743.noarch 8/10 Installing : httpd-filesystem-2.4.37-11.module+el8.0.0+2969+90015743.noarch 8/10 Installing : mod_http2-1.11.3-2.module+el8.0.0+2969+90015743.x86_64 9/10 Installing : httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 10/10 Running scriptlet: httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 10/10 Verifying : apr-util-openssl-1.6.1-6.el8.x86_64 1/10 Verifying : apr-util-bdb-1.6.1-6.el8.x86_64 2/10 Verifying : apr-1.6.3-9.el8.x86_64 3/10 Verifying : apr-util-1.6.1-6.el8.x86_64 4/10 Verifying : httpd-tools-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 5/10 Verifying : httpd-filesystem-2.4.37-11.module+el8.0.0+2969+90015743.noarch 6/10 Verifying : mod_http2-1.11.3-2.module+el8.0.0+2969+90015743.x86_64 7/10 Verifying : httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 8/10 Verifying : mailcap-2.1.48-3.el8.noarch 9/10 Verifying : redhat-logos-httpd-80.7-1.el8.noarch 10/10 Installed products updated. Installed: httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 httpd-tools-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 httpd-filesystem-2.4.37-11.module+el8.0.0+2969+90015743.noarch mod_http2-1.11.3-2.module+el8.0.0+2969+90015743.x86_64 mailcap-2.1.48-3.el8.noarch redhat-logos-httpd-80.7-1.el8.noarch Complete!
Con esto ya tenemos instalado el servidor web Apache.
Configuración de Apache
La instalación a través de yum/dnf nos deja el servicio HTTPD completamente funcional, sólo es necesario iniciar el servicio y ubicar nuestros archivos web en la ruta /var/www/html
. La instalación de PHP, backends SQL o configuraciones avanzadas las podéis ver en otros artículos de esta misma web. Tened en cuenta las siguientes rutas por defecto de la instalación:
- Logs de Apache:
/var/log/httpd
- Directorio de configuración:
/etc/httpd
- Archivo de configuración global:
/etc/httpd/conf/httpd.conf
- Directorio de archivos de configuración extra:
/etc/httpd/conf.d/
Arranque, parada y control del servicio httpd
Todo el control del servicio lo haremos con systemctl
, si tenéis un conocimiento básico de la gestión de servicios desde RHEL/CentOS 7 no tendréis mayor dificultad.
Iniciar Apache HTTPD
Siempre como root, ejecutar el siguiente comando:
# systemctl start httpd
Parar Apache HTTPD
Siempre como root, ejecutar el siguiente comando:
# systemctl stop httpd
Verificar el estado de Apache HTTPD
Siempre como root, ejecutar el siguiente comando:
# systemctl status httpd
Mostrará tanto el estado de servicio y tiempo de ejecución a nivel de systemctl como otros datos importantes: PID principal del servicio, ID de páginas man, memoria en uso, configuración de cgroups y últimas entradas del log. Os dejo una muestra:
[root@localhost conf]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-05-18 09:23:47 CEST; 1s ago Docs: man:httpd.service(8) Main PID: 9890 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 12543) Memory: 24.1M CGroup: /system.slice/httpd.service ├─9890 /usr/sbin/httpd -DFOREGROUND ├─9891 /usr/sbin/httpd -DFOREGROUND ├─9892 /usr/sbin/httpd -DFOREGROUND ├─9893 /usr/sbin/httpd -DFOREGROUND └─9894 /usr/sbin/httpd -DFOREGROUND May 18 09:23:47 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... May 18 09:23:47 localhost.localdomain httpd[9890]: AH00558: httpd: Could not reliably determ> May 18 09:23:47 localhost.localdomain httpd[9890]: Server configured, listening on: port 80 May 18 09:23:47 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Con esta información ya disponéis de una instalación básica del servicio web Apache (HTTPD) en RHEL 8 y CentOS 8. Recordad que si tenéis activo firewalld tendréis que establecer una política de firewall que permita el tráfico, ya sea por HTTP/TCP 80 ó HTTP/TCP 443 (SSL) ¡Suerte!
# firewall-cmd --zone=public --add-service=http # firewall-cmd --zone=public --add-service=https