En este artículo veremos cómo instalar Apache en Fedora 35, 34 y 33 paso a paso, de modo que puedas trabajar con un servidor web muy popular y fácil de usar en tu servidor o VPS Fedora.
Contenido
Antes de instalar Apache en Fedora 35/34/33
Si quieres seguir los pasos de esta guía de instalación de Apache en Fedora 35 necesitas partir de la siguiente base:
- Un sistema Fedora 35, 34 ó 33 actualizado.
- Acceso a línea de comandos con un usuario con permisos de sudo o el mismo root.
- Conexión a Internet.
Cómo instalar Apache en Fedora 35
Vamos a instalar Apache en Fedora 35, 34 y 33 a partir de los paquetes disponibles en los repositorios de la distribución, así que el primer paso será actualizar las listas de paquetes:
~$ sudo yum update
El paquete que necesitamos instalar es httpd:
~$ sudo yum install -y httpd
Si pensamos utilizar seguridad SSL mediante protocolo HTTPS para el servidor Apache de nuestra máquina Fedora 35 habrá que asegurarse de que esté disponible la herramienta openssl:
~$ sudo yum install -y openssl
Tras la descarga e instalación de Apache se crea un nuevo servicio en Fedora 35, el servicio httpd.service o httpd, que no queda en ejecución ni habilitado para su inicio automático. Arrancamos el servicio para comprobar que funciona:
~$ sudo systemctl start httpd
Si además queremos que Apache esté siempre disponible y que inicie automáticamente en cada arranque de Fedora 35, tendremos que habilitar el servicio:
~$ sudo systemctl enable httpd
Con Apache iniciado y habilitado, podemos comprobar su estado con el comando systemctl status httpd
:
Comprobar la versión instalada
Si necesitas saber qué versión del servidor web Apache corre en Fedora 35, puedes comprobarlo con el comando apachectl -v
:
~$ apachectl -v Server version: Apache/2.4.53 (Fedora Linux) Server built: Mar 17 2022 00:00:00
Configurar el firewall de Fedora 35 para Apache
Para poder acceder al servidor web Apache desde la red, en el caso de tener activado el firewall de Fedora 35 será necesario añadir alguna regla:
~$ sudo firewall-cmd --permanent --add-service=http
Para conexiones HTTPS con seguridad SSL será necesaria otra regla:
~$ sudo firewall-cmd --permanent --add-service=https
Y para aplicar las nuevas reglas hay que recargar la configuración del firewall:
~$ sudo firewall-cmd --reload
Acceder al servicio web
Para acceder al servidor web Apache desde un navegador, bastará con usar la dirección IP o cualquier nombre DNS o dominio que pueda resolverse a dicha dirección. En el caso de trabajar en modo local, podremos usar http://127.0.0.1 o http://localhost.
Por ejemplo, el servidor Fedora 35 sobre el que realizamos este tutorial es accesible en el subdominio fedora.local.lan, por lo que podemos probar http://fedora.local.lan como URL:
Cómo configurar Apache en Fedora 35
Para configurar Apache en Fedora 35 trabajaremos sobre sus distintos archivos de configuración, organizados bajo la ruta /etc/httpd/, siendo el archivo principal httpd.conf, desde el que se incluyen el resto de archivos organizados en subdirectorios:
- /etc/httpd/conf/, archivos de configuración principales.
- /etc/httpd/conf.d/, archivos de configuración adicionales.
- /etc/httpd/conf.modules.d/, configuraciones de carga de los módulos de Apache.
Algunas distribuciones de Linux ofrecen un subdirectorio específico para las configuraciones de servidores virtuales de Apache, aunque no es el caso de Fedora 35. Pero nada impide que podamos crearlo para organizar las futuras configuraciones de servidores virtuales:
~$ sudo mkdir /etc/httpd/sites.d
Para que se tengan en cuenta los archivos de este subdirectorio, editamos el archivo de configuración principal de Apache:
~$ sudo nano /etc/httpd/conf/httpd.conf
Y añadimos al final del mismo una directiva IncludeOptional para cargar los archivos de configuración de sitios virtuales presentes en ese directorio:
... IncludeOptional sites.d/*.conf
Guardamos los cambios y recargamos la configuración del servicio:
~$ sudo systemctl reload httpd
Para ilustrar la configuración de Apache, veremos cómo realizar los ajustes más comunes.
Servidores virtuales de Apache en Fedora 35
Una de las características más interesantes de un servidor web es la posibilidad de trabajar con servidores virtuales y ofrecer distintos sitios web conectando a dominios distintos, y Apache es capaz de hacerlo.
Servidor virtual por defecto
Es interesante crear un arhivo de configuración para el servidor virtual por defecto, aquel que atenderá cualquier petición a dominios y nombres DNS que apunten a la máquina Fedora 35, pero no tengan configurado un servidor virtual específico:
~$ sudo nano /etc/httpd/sites.d/000_default.conf
El contenido de este archivo será simplemente un bloque VirtualHost:
<VirtualHost _default_:80> </VirtualHost>
Guardamos el archivo al terminar.
Configurar servidores virtuales
Para configurar nuevos servidores virtuales necesitaremos dominios o nombres DNS apuntando al servidor Fedora 35 que estamos configurando, ya sea a través de servidores DNS, el archivo /etc/hosts/, etc.
En el caso de que tu servidor web sea accesible desde Internet normalmente necesitarás registrar dominios y configurarlos para que apunten a tu servidor Fedora 35, cosa que puedes hacer con Namecheap:
En este tutorial, además del dominio principal (que será atendido por el servidor por defecto), usaremos un subdominio del dominio principal y otro dominio:
- virtual.fedora.local.lan
- fedoramania.lan
Por lo tanto, en este ejemplo podemos acceder al mismo servicio web Apache de Fedora 35 con tres nombres DNS distintos:
Todos los nombres DNS deberían devolver la página por defecto de Apache en Fedora 35.
Creamos las carpetas de documentos web para cada uno de los servidores virtuales:
~$ sudo mkdir /var/www/virtual.fedora.local.lan /var/www/fedoramania.lan
En cada carpeta o directorio crearemos archivos index.html con algún mensaje que sirva para identificar los sitios web, por ejemplo, para virtual.fedora.local.lan:
~$ sudo nano /var/www/virtual.fedora.local.lan/index.html
Con un contenido como este, por ejemplo:
<h1>Bienvenidos a virtual.fedora.local.lan</h1> <small>Powered by Apache</small>
Guardamos el archivo y hacemos algo similar para el otro servidor virtual.
Creamos el archivo de configuración para el servidor virtual:
~$ sudo nano /etc/httpd/sites.d/virtual.fedora.local.lan.conf
Con el contenido:
<VirtualHost *:80> ServerName virtual.fedora.local.lan DocumentRoot /var/www/virtual.fedora.local.lan </VirtualHost>
Guardamos los cambios y cerramos el archivo.
Dentro del bloque VirtualHost incluimos las directivas:
- ServerName, que es donde especificamos el dominio o nombre DNS al que responde el servidor virtual.
- DocumentRoot, el directorio de archivos del sitio web del servidor virtual.
Hacemos otro tanto para todos los servidores virtuales que vayamos a configurar.
Para incluir las configuraciones de los servidores virtuales, recargamos la configuración del servicio web:
~$ sudo systemctl reload httpd
Y accedemos de nuevo a los distintos dominios o nombres DNS a los que responde el servidor Fedora 35, tanto el principal como aquellos para los que hemos configurado los servidores virtuales de Apache:
Justo lo que queríamos.
Cómo instalar módulos de Apache en Fedora 35
Una de las características más utilizadas de Apache es la posibilidad de extender sus funcionalidades mediante módulos. Podemos ver los módulos de Apache instalados por defecto en Fedora 35 con el comando httpd -M
:
~$ httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) ... cgid_module (shared) http2_module (shared) proxy_http2_module (shared)
Para añadir un nuevo módulo que no esté presente en la configuración actual debemos instalar el paquete correspondiente. Por ejemplo, para trabajar con conexiones con seguridad SSL mediante el protocolo HTTPS necesitamos instalar el paquete mod_ssl con yum:
~$ sudo yum install -y mod_ssl
Normalmente el binario del módulo se instala en el directorio /etc/httpd/modules/, la configuración que permite la carga del módulo se ubica en /etc/httpd/conf.modules.d/ y si el módulo necesita configuración el archivo correspondiente se ubica en la ruta /etc/httpd/conf.d/.
Configuración SSL para Apache en Fedora 35
Para poder ofrecer sitios web mediante conexiones seguras necesitamos incorporar el módulo SSL de Apache, como hemos visto antes, y configurar los distintos servidores virtuales.
Certificados SSL
Además, para cifrar la conexión se necesitan certificados SSL asociados al dominio del servidor virtual que vamos a configurar.
Para servicios en producción es necesario obtener certificados firmados por autoridades certificadoras, como los que ofrecen servicios profesionales del estilo de Namecheap:
Aunque para pruebas, desarrollo, etc. puedes usar certificados autofirmados creados por ti mismo.
Por ejemplo, para crear un certificado autofirmado para el dominio principal del servidor, fedora.local.lan en este caso, utilizamos el siguiente comando:
~$ sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3650 -out /etc/pki/tls/certs/fedora.local.lan.crt -keyout /etc/pki/tls/private/fedora.local.lan.key
Se solicita cierta informaicón para incorporar al certificado, siendo probablemente la más importante «Common Name«, donde especificamos el dominio al que asociar el certificado:
... Common Name (eg, your name or your server's hostname) []:fedora.local.lan ...
Los certificados se instalan en la ruta especificada en las opciones del comando.
Configuración SSL
El módulo SSL de Apache en Fedora 35 incluye un archivo de configuración ssl.conf en el que se incluyen una serie de ajustes generales y también una configuración personalizada para el servidor virtual por defecto. Editaremos este archivo para configurar los certificados (ya sean firmados o autofirmados):
~$ sudo nano /etc/httpd/conf.d/ssl.conf
La configuración para el servidor virtual por defecto se encuentra dentro de un bloque VirtualHost:
... <VirtualHost _default_:443> ... </VirtualHost>
Encontraremos las directivas SSLCertificateFile y SSLCertificateKeyFile con valores por defecto de archivos que no existen:
... SSLCertificateFile /etc/pki/tls/certs/localhost.crt ... SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ...
Sustituiremos los valores por defecto por las rutas de los certificados que hemos preparado (ya sean firmados o autofirmados):
... SSLCertificateFile /etc/pki/tls/certs/fedora.local.lan.crt ... SSLCertificateKeyFile /etc/pki/tls/private/fedora.local.lan.key ...
Una vez terminada la configuración, guardamos los cambios.
Para incorporar la configuración SSL al resto de servidores virtuales, editamos sus respectivos archivos de configuración, por ejemplo:
~$ sudo nano /etc/httpd/sites.d/virtual.fedora.local.lan.conf
Y añadimos el nuevo bloque VirtualHost al final del archivo:
... <VirtualHost *:443> ServerName virtual.fedora.local.lan DocumentRoot /var/www/virtual.fedora.local.lan SSLEngine on SSLCertificateFile /etc/pki/tls/certs/virtual.fedora.local.lan.crt SSLCertificateKeyFile /etc/pki/tls/private/virtual.fedora.local.lan.key </VirtualHost>
Observa que este bloque, a diferencia del que se encarga de las conexiones con protocolo HTTP presenta estas particularidades:
- El bloque VirtualHost especifica el puerto estándar HTTPS (443) en lugar del puerto HTTP (80).
- Se activa el cifrado mediante la directiva SSLEngine.
- Las directivas SSCertificateFile y SSLCertificateKeyFile indican las rutas del certificado público y la clave privada que obtuvimos/creamos anteriormente.
Algunos certificados pueden necesitar un archivo más, cuya ruta se indicaría con la directiva SSLCertificateChainFile.
Guardamos los cambios y cerramos el archivo.
Por cada servidor virtual para el que queramos activar seguridad SSL el proceso será el mismo, obtener o crear los certificados y reconfigurar los archivos de configuración.
Finalmente, recargamos la configuración del servicio Apache:
~$ sudo systemctl reload httpd
Accedemos al dominio principal, pero indicando https:// en lugar de http:// en la URL de acceso:
En el caso de usar certificados autofirmados el navegador mostrará un aviso de que no es posible comprobar la autenticidad de los mismos, al no estar respaldados por una autoridad de certificación. Normalmente el navegador permite continuar el acceso de alguna u otra forma:
Aunque se permite la conexión, el navegador seguirá mostrando algún tipo de aviso.
Repitiendo el proceso, instalando los certificados SSL (o creándolos) y realizando los ajustes de configuración, todos los servidores virtuales funcionarán:
Conclusión
Ahora que sabes cómo instalar y configurar Apache en Fedora 35 puedes desplegar contenidos, aplicaciones y sitios web desde tu servidor o VPS Fedora, utilizando uno de los servidores web más ampliamente utilizados por la comunidad.
Si tienes dudas o preguntas, alguna sugerencia de mejora del artículo o crees que es necesario actualizarlo, quieres notificar algún error, etc. puedes dejar un comentario.
¡Apoya comoinstalar.me!
¿Ya puedes servir sitios web gracias a esta guía de instalación y configuración del servidor web Apache en Fedora 35? Si es así y te gustaría contribuir al mantenimiento de este sitio y la creación de más artículos de Fedora 35 y Apache, cualquier aportación es bienvenida.
Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café
¡Gracias!