Cómo instalar Apache en Rocky Linux 8

En este artículo veremos cómo instalar el servidor web en Rocky Linux 8 paso a paso, de forma que podrás ofrecer contenido web desde tu servidor o VPS Rocky con seguridad SSL y servidores virtuales.

Antes de instalar Apache en Rocky Linux 8

Para poder seguir los pasos de esta guía de instalación del servidor web Apache en Rocky Linux 8 debes cumplir estos mínimos requerimientos:

  • Una máquina Rocky Linux 8 actualizada.
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Como seguramente ya cumples estos requisitos, pasaremos a regular la altura de nuestro escritorio y a abrir una terminal de comandos.

Cómo instalar Apache en Rocky Linux 8

Vamos a instalar el servicio web Apache en Rocky Linux 8 desde los repositorios de la distribución, por lo que el primer paso será actualizar la información de los mismos:

~$ sudo yum update

El paquete que necesitamos es httpd, que instalaremos con yum:

~$ sudo yum install -y httpd

Tras la descarga e instalación de este paquete y sus dependencias disponemos de un nuevo servicio en Rocky Linux 8, el servicio httpd.service o simplemente httpd. Este servicio no queda en ejecución ni habilitado para su inicio automático en cada arranque del sistema.

Si queremos que Apache inicie automáticamente con Rocky Linux 8, debemos habilitar el servicio:

~$ sudo systemctl enable httpd

Y si queremos empezar a trabajar ya con el servidor web, tendremos que iniciarlo manualmente:

~$ sudo systemctl start httpd

Es fácil comprobar el estado del servicio en cualquier momento, empleando para ello el comando systemctl status httpd:

como instalar el servidor web apache en rocky linux 8

Versión instalada

Si necesitas conocer la versión exacta de Apache instalada puedes usar el comando httpd:

~$ httpd -v
Server version: Apache/2.4.37 (rocky)
Server built:   Jun 11 2021 15:35:05

Configuración del firewall

Si quieres acceder desde red al servicio web de la máquina Rocky Linux 8 será necesario configurar el firewall añadiendo la regla correspondiente:

~$ sudo firewall-cmd --permanent --add-service={http,https}

Para aplicar la nueva configuración hay que recargar los ajustes del firewall:

~$ sudo firewall-cmd --reload

Cómo probar el servicio

Es hora de probar el servidor web desde un navegador, para lo que introducimos la dirección IP, nombre DNS, dominio, etc. de la máquina Rocky Linux 8 (o localhost si accedemos localmente).

Para acceder por dominio a un servidor Rocky Linux 8 en Internet deberás tener registrado y configurado dicho dominio a través de algún servicio de registro como Namecheap (el servicio que usamos en comoinstalar.me, por ejemplo):

Por ejemplo, la máquina Rocky Linux 8 sobre la que hemos preparado este tutorial es accesible en el subdominio rocky8.local.lan, así que podemos usar http://rocky8.local.lan como URL:

instalar el servidor web apache en rocky linux 8

Podremos ver la página de prueba del sitio web por defecto. En realidad es una página de error, ya que el directorio donde se guardan los archivos del sitio web es /var/www/html/ y tras la instalación no contiene archivos.

Si colocamos algún contenido web en dicho directorio, con un archivo index.html, podremos apreciar el cambio al recargar la página:

servidor web apache en rocky linux 8

Cómo configurar Apache en Rocky Linux 8

Para configurar el servicio Apache en Rocky Linux 8 hay que saber que sus archivos de configuración se organizan bajo la ruta /etc/httpd/, siendo el archivo principal /etc/httpd/conf/httpd.conf, desde el que se incluyen el resto de archivos.

Para aplicar cambios de configuración será necesario recargar la configuración del servicio:

~$ sudo systemctl reload httpd

Algunos ajustes requieren reiniciar el servicio:

~$ sudo systemctl restart httpd

Seguridad SSL

Si quieres ofrecer conexiones seguras a tus usuarios es necesario configurar el protocolo seguro HTTPS con seguridad SSL. Para cifrar las conexiones se necesitan claves privadas y certificados SSL que, en el caso de sitios disponibles desde Internet, deberían estar firmados por autoridades certificadoras, como los certificados que puedes conseguir a través de servicios profesionales como Namecheap:

SSL Certificate for just $8.88 with Namecheap

En redes locales o para servidores en pruebas basta con usar certificados autofirmados generados por nosostros mismos en la máquina Rocky Linux 8 con el comando openssl:

~$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/pki/tls/private/rocky8.local.lan.key -out /etc/pki/tls/certs/rocky8.local.lan.crt

Este comando crea la clave privada y el certificado público guardándolos en las rutas y con los nombres especificados en los parámetros keyout y out respectivamente.

Además, incorpora de forma interactiva cierta información pública entre la que debería figurar, en el apartado «Common Name«, el dominio al que responde el servidor web:

...
Common Name (eg, your name or your server's hostname) []:rocky8.local.lan
...

El siguiente paso será instalar el módulo SSL de Apache para Rocky Linux 8:

~$ sudo yum install -y mod_ssl

Este módulo posee su propia configuración, guardada en el archivo ssl.conf:

~$ sudo nano /etc/httpd/conf.d/ssl.conf

En este archivo debemos configurar las rutas del certificado y de la clave privada que acabamos de instalar o crear, buscando las directivas SSCertificateFile y SSLCertificateKeyFile:

...
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
...
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
...

Sustituiremos los valores por defecto por los correspondientes a nuestros archivos de certificado y clave:

..
SSLCertificateFile /etc/pki/tls/certs/rocky8.local.lan.crt
...
SSLCertificateKeyFile /etc/pki/tls/private/rocky8.local.lan.key
...

Dependiendo del origen de nuestros certificados, en ocasiones puede existir adicionalmente un archivo de cadena cuya ruta debería configurarse igualmente a través de la directiva SSLCertificateChainFile:

...
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
...

En este caso la directiva está desactivada, pero si existiese dicho archivo de cadena la activaríamos (eliminando el carácter # inicial) y le daríamos el valor adecuado:

...
SSLCertificateChainFile /etc/pki/tls/certs/rocky8.local.lan-server-chain.crt
...

Ya podemos guardar los cambios y reiniciar el servicio:

~$ sudo systemctl restart httpd

Ahora el servicio web está disponible tanto a través del protocolo estándar HTTP como del protocolo seguro HTTPS.

Siguiendo con el ejemplo de este tutorial, probaremos la conexión segura HTTPS cambiando http:// por https:// en la URL que utilizamos anteriormente, quedando ahora https://rocky8.local.lan como nueva URL.

Si usamos certificados autofirmados el navegador no podrá comprobar la autenticidad de los mismos, por lo que mostrará una alerta:

como instalar y configurar apache en rocky linux 8

Normalmente se ofrece alguna forma de poder continuar con la conexión:

seguridad https ssl en apache para rocky linux 8

En el caso de usar certificados firmados por autoridades certificadoras se establece la conexión directamente y no se muestra ningún tipo de alerta o aviso.

Servidores virtuales

Una de las características más potentes a la hora de trabajar con Apache en Rocky Linux 8 es la posibilidad de ofrecer distintos sitios web accesibles a través de dominios o nombres DNS independientes, como si cada sitio web se tratase de un servidor distinto.

Para trabajar con servidores virtuales necesitaremos disponer previamente de los distintos dominios que vamos a utilizar registrados y configurados para apuntar al servidor Rocky Linux 8. Recuerda que en el caso de un servidor Rocky Linux 8 en Internet, podemos registrar y configurar dichos dominios en servicios como Namecheap:

Si el servicio es para una red local entonces dichos dominios y subdominios deberán estar configurados en el servidor DNS local.

En este tutorial crearemos un servidor virtual adicional al sitio web por defecto, accesible en el dominio midominio.com. En principio, al acceder a través de cualquier dominio que apunte a la máquina Rocky Linux 8 se obtiene la misma página por defecto:

configuracion de apache en rocky linux 8

Configuración inicial

Vamos a crear un directorio para guardar las configuraciones de los distintos servidores virtuales que podamos llegar a tener:

~$ sudo mkdir /etc/httpd/vhosts.d

Para que los archivos contenidos en este nuevo directorio sean tenidos en cuenta, realizaremos algún ajuste en httpd.conf:

~$ sudo nano /etc/httpd/conf/httpd.conf

Al final del archivo añadiremos la siguiente directiva IncludeOptional:

...
IncludeOptional vhosts.d/*.conf

Ya podemos guardar y cerrar este archivo.

Como este servidor ya contiene un sitio web por defecto, nos aseguraremos en que siga siendo el sitio por defecto creando una configuración de servidor virtual:

~$ sudo nano /etc/httpd/vhosts.d/000-default.conf

Hemos elegido el nombre 000-default.conf porque en el caso de cargar todas las configuraciones de un directorio, se hace por orden alfabético. De esta forma nos aseguramos de que este archivo sea leído en primer lugar. Su contenido será únicamente un bloque VirtualHost vacío:

<VirtualHost *:80>
</VirtualHost>

El bloque está vacío para que se use toda la configuración por defecto (que es la que se aplicaba antes de estos cambios).

Configuración del servidor virtual

Empezaremos creando un directorio o DocumentRoot para los archivos web del nuevo servidor virtual:

~$ sudo mkdir /var/www/midominio.com

En este directorio crearemos un archivo index.html como contenido:

~$ sudo nano /var/www/midominio.com/index.html

Este archivo simplemente contendrá un mensaje que nos ayude a identificar el sitio:

<h1>midominio.com</h1>
<small>Powered by Apache</small>

Ahora crearemos el archivo de configuración del servidor virtual para el dominio midominio.com en el directorio de configuraciones que creamos en pasos anteriores:

~$ sudo nano /etc/httpd/vhosts.d/midominio.com.conf

El contenido mínimo será similar al siguiente:

<VirtualHost *:80>
        ServerName midominio.com
        DocumentRoot /var/www/midominio.com

        <Directory /var/www/midominio.com>
        </Directory>

        ErrorLog /var/log/httpd/error-midominio.com.log
        CustomLog /var/log/httpd/access-midominio.com.log combined
</VirtualHost>

Dentro del bloque VirtualHost indicamos el dominio al que responderá el servidor virtual, su directorio de contenido web, un bloque Directory en el que podríamos añadir configuraciones especiales para el contenido de este servidor virtual y archivos de registro de errores y accesos propios del servidor virtual.

Guardamos los cambios y recargamos la configuración del servicio:

~$ sudo systemctl reload httpd

Ahora accedemos al sitio web por defecto y al servidor virtual y veremos que obtenemos distintas páginas:

servidores virtuales de apache en rocky linux 8

Justo lo que queríamos.

Servidores virtuales con seguridad SSL

Para añadir seguridad SSL a los servidores virtuales de Apache en Rocky Linux 8 en primer lugar habrá que tener instalados los archivos de clave y certificado SSL asociados al dominio del servidor virtual (autofirmados o firmados, según el caso).

Hecho esto, editamos la configuración del servidor virtual:

~$ sudo nano /etc/httpd/vhosts.d/midominio.com.conf

Y añadimos al final del archivo un nuevo bloque VirtualHost:

...
<VirtualHost *:443>
        ServerName midominio.com
        DocumentRoot /var/www/midominio.com

        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/midominio.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/midominio.com.key

        <Directory /var/www/midominio.com>
        </Directory>

        ErrorLog /var/log/httpd/error-midominio.com.log
        CustomLog /var/log/httpd/access-midominio.com.log combined
</VirtualHost>

El contenido es muy similar al bloque VirtualHost existente, salvo que ahora indicamos el puerto estándar HTTPS (el 443), activamos el módulo SSL y configuramos los archivos de certificado y clave para el dominio del servidor virtual.

Guardamos los cambios y recargamos la configuración del sistema:

~$ sudo systemctl reload httpd

Ya podemos acceder a las versiones HTTPS del sitio por defecto y el servidor virtual, y obtendremos sus correspondientes páginas a través de conexión SSL:

servidores virtuales con ssl en apache para rocky linux 8

Conclusión

Ahora que sabes cómo instalar y configurar el servidor web Apache en Rocky Linux 8 ya puedes desarrollar y ofrecer contenido web tanto en red local como a través de Internet. Podrás aprovechar toda la capacidad de tu servidor Rocky Linux 8 mediante el uso de servidores virtuales de Apache para ofrecer distintos sitios web, y tus visitantes disfrutarán de conexiones seguras.

Si tienes alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario. Los comentarios están moderados (no te imaginas la cantidad de SPAM que recibimos), pero se revisan prácticamente a diario.

¡Apoya comoinstalar.me!

¿Ya tienes servidor web funcionando en tu propia máquina? Si es así tal vez quieras agradecérnoslo contribuyendo al mantenimiento de este sitio y la creación de nuevos artículos y tutoriales.

Puedes ayudarnos dejando a partir de 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un cappuccino:

¡Gracias!

Valora esta entrada

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies