Cómo instalar Apache en Rocky Linux 8, para convertir nuestro equipo Linux en un servidor web. Añadimos un nuevo dominio usando Virtual Host de Apache, como ejemplo para agregar una nueva web a nuestro servidor.
- Instalar Apache en Rocky Linux 8.
- Añadir dominio para sitio web en Virtual Host de Apache.
- Probando el nuevo sitio web Virtual Host de Apache desde un equipo externo.
Antes de continuar, indicar que en todo el artículo estamos suponiendo que el servidor Rocky Linux tiene la IP 192.168.1.224 y que el nuevo dominio (sitio web) que queremos añadir tiene de URL proyectoa.com. Como es lógico, cambiaremos estos valores por los que tengamos en nuestro entorno.
Instalar Apache en Rocky Linux 8
En primer lugar, es conveniente hacer una actualización de paquetes previa. El proceso puede tardar varios minutos. Para ello, ejecutaremos el siguiente comando Linux:
1 |
sudo dnf update |
A continuación, procederemos a la instalación de Apache, ejecutando el comando:
1 |
sudo dnf install httpd |
Una vez descargado el paquete httpd, nos solicitará confirmación para instalarlo. Pulsaremos la tecla «s» y la tecla INTRO:

Tras la instalación de Apache, iniciaremos el servicio con el comando:
1 |
sudo systemctl start httpd |
Indicaremos que el servicio de Apache (httpd) se inicie en el arranque del equipo, con el comando:
1 |
systemctl enable httpd |
Comprobaremos que el servicio está iniciado correctamente, con el comando:
1 |
systemctl status httpd |
Que nos devolverá algo así como:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-10-04 15:01:20 CEST; 24s ago Docs: man:httpd.service(8) Main PID: 73232 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 23216) Memory: 25.6M CGroup: /system.slice/httpd.service ├─73232 /usr/sbin/httpd -DFOREGROUND ├─73233 /usr/sbin/httpd -DFOREGROUND ├─73234 /usr/sbin/httpd -DFOREGROUND ├─73235 /usr/sbin/httpd -DFOREGROUND └─73236 /usr/sbin/httpd -DFOREGROUND oct 04 15:01:20 svrocky systemd[1]: Starting The Apache HTTP Server... oct 04 15:01:20 svrocky httpd[73232]: AH00558: httpd: Could not reliably determine the server's fully qua> oct 04 15:01:20 svrocky systemd[1]: Started The Apache HTTP Server. oct 04 15:01:20 svrocky httpd[73232]: Server configured, listening on: port 80 |
También podremos comprobar la versión de Apache instalada, con el comando:
1 |
httpd -v |
Que devolverá:
1 2 |
Server version: Apache/2.4.37 (rocky) Server built: Sep 22 2023 23:22:00 |
Y, para permitir accesos externos, deberemos abrir el protocolo http en el cortafuegos del equipo Rocky Linux, podemos hacerlo ejecutando el siguiente comando:
1 |
sudo firewall-cmd --permanent --add-service={http,https} |
Para aplicar los cambios hechos en el cortafuegos, ejecutaremos el comando:
1 |
sudo firewall-cmd --reload |

Ahora podremos comprobar, desde un equipo externo, que tenemos acceso al servidor web con Apache y Rocky Linux. Para ello, abriremos una navegador web y en la URL introduciremos la dirección IP del servidor Rocky Linux, Apache cargará su página web por defecto:

Y de esta forma, tan sencilla, tendremos un servidor web funcional.
Añadir dominio para sitio web en Virtual Host de Apache
Para añadir un nuevo sitio web a nuestro servidor Apache y sustituir el que aparece por defecto (la página de pruebas HTTP Server Test Page), seguiremos los siguientes pasos.
En primer lugar añadiremos la carpeta y los ficheros de nuestro sitio web, en cualquier ubicación del disco del equipo. No es recomendable añadir el sitio web en la carpeta por defecto /var/www, por temas de seguridad. Por ejemplo, crearemos la carpeta:
1 |
sudo mkdir -p /var/sw/proyectoa |
Si queremos, podemos añadir permisos a la carpeta creada para que el usuario actual (con el que hemos iniciado sesión en Rocky Linux), tenga permisos para editar ficheros en dicha carpeta:
1 |
sudo chown -R $USER:$USER /var/sw/proyectoa |
Que será donde alojemos los ficheros de nuestro sitio web. A modo de ejemplo, crearemos un primer fichero, con el nombre index.html, en la carpeta anterior:
1 2 |
cd /var/sw/proyectoa nano index.html |

y el contenido:
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html lang="es"> <head> <title>Sitio web ProyectoA - Apache en Rocky Linux</title> </head> <body> <h1>Este es mi primer sitio web Proyecto A, con Apache sobre Rocky Linux 8.8.</h1> <p>Sitio web añadido a Virtual Host de Apache en Rocky Linux, para que cargue en el inicio del acceso raíz al servidor web, para el sitio proyectoa.com.</p> </body> </html> |

Recrearemos la siguiente estructura de carpetas, para sitios activos actualmente y para sitios disponibles. Se esta forma, si queremos «quitar» un sitio en un momento dado, lo eliminaremos de la carpeta de sitios activos. Cuando queramos recuperarlo, copiaremos el fichero .conf del sitio de la carpeta de sitios disponibles a sitios activos:
1 2 |
sudo mkdir /etc/httpd/conf.d/sitios_disponibles sudo mkdir /etc/httpd/conf.d/sitios_activos |
Crearemos ahora el fichero virtual host para nuestro sitio web, en la carpeta /etc/httpd/conf.d/sitios_disponibles, con el nombre proyectoa.conf:
1 |
sudo nano /etc/httpd/conf.d/sitios_disponibles/proyectoa.conf |
Con el siguiente contenido:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<VirtualHost *:80> ServerName www.proyectoa.com ServerAlias proyectoa.com DocumentRoot /var/sw/proyectoa <Directory /var/sw/proyectoa> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog /var/log/httpd/proyectoa.com-error.log CustomLog /var/log/httpd/proyectoa.com-access.log combined </VirtualHost> |

Como podemos comprobar, indicamos en el fichero anterior la ruta del sitio web en el parámetro DocumentRoot y en la directiva Directory.
Copiaremos el fichero /etc/httpd/conf.d/sitios_disponibles/proyectoa.conf a la carpeta /etc/httpd/conf.d/sitios_activos, que será la que a continuación indicaremos para la carga de Apache:
1 |
sudo cp /etc/httpd/conf.d/sitios_disponibles/proyectoa.conf /etc/httpd/conf.d/sitios_activos |
Ahora vamos a indicar a Apache que use (cargue) los ficheros que contenga la carpeta /etc/httpd/conf.d/sitios_activos. Para ello editaremos el fichero
1 |
sudo nano /etc/httpd/conf/httpd.conf |
Al final de este fichero, comentaremos la línea:
1 |
IncludeOptional conf.d/*.conf |
Añadiendo el carácter «#» delante, quedando:
1 |
#IncludeOptional conf.d/*.conf |
y añadiremos esta nueva línea:
1 |
IncludeOptional conf.d/sitios_activos/*.conf |

De esta forma, desactivamos la carga del sitio web por defecto de Apache y activamos la carga de los sitios web que se vayan añadiendo a la carpeta /etc/httpd/conf.d/sitios_activos.
Guardaremos los cambios (Control + O) y cerraremos la edición del fichero (Control + X).
Comprobaremos la sintaxis del fichero proyectoa.conf añadido, ejecutando el comando:
1 |
sudo apachectl configtest |
Nos mostrará este aviso:
1 |
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.1.224. Set the 'ServerName' directive globally to suppress this message<br>Syntax OK |
Si queremos evitar este error/warning, editaremos el fichero de configuración de Apache, con:
1 |
sudo nano /etc/httpd/conf/httpd.conf |
Y añadiremos la siguiente línea:
ServerName www.proyectoa.com:80

Guardamos los cambios (Control + O) y cerramos la edición del fichero (Control + X).
Volvemos a ejecutar el comando de comprobación de sintaxis de los ficheros Virtual Host:
1 |
sudo apachectl configtest |
Ahora ya no nos mostrará el warning, solo «Syntax OK»:

Por último, volveremos a editar el fichero de configuración de Apache, para establecer los permisos a la nueva carpeta raíz /var/sw:
1 |
sudo nano /etc/httpd/conf/httpd.conf |
Realizaremos las siguientes modificaciones en el fichero:
- Comentamos la línea DocumentRoot «/var/www/html», añadiendo el carácter «#» delante:
1 |
#DocumentRoot "/var/www/html" |
Después de esta línea comentada, añadiremos una nueva:
1 |
DocumentRoot "/var/sw/proyectoa" |
- Comentamos la línea <Directory «/var/www»>, añadiendo el carácter «#» delante:
1 |
#<Directory "/var/www"> |
Después de esta línea comentada, añadiremos una nueva:
1 |
<Directory "/var/sw"> |
Quedando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#DocumentRoot "/var/www/html" DocumentRoot "/var/sw/proyectoa" # # Relax access to content within /var/www. # #<Directory "/var/www"> <Directory "/var/sw"> AllowOverride None # Allow open access: Require all granted </Directory> # Further relax access to the default document root: #<Directory "/var/www/html"> <Directory "/var/sw/proyectoa"> |
Muy importante: si hemos cambiado la ubicación del sitio web de defecto (como ha sido nuestro caso), y tenemos habilitado SELinux, deberemos ejecutar el siguiente comando para habilitar el acceso a la nueva carpeta raíz de los sitios web /var/sw por parte del servicio httpd:
1 |
sudo chcon -R -t httpd_sys_rw_content_t /var/sw/ |
Si no hacemos esto, al intentar acceder al sitio web, mostrará el error:
Forbidden
You don’t have permission to access this resource.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Para aplicar todos los cambios, reiniciaremos el servicio de Apache, con el comando:
1 |
sudo systemctl restart httpd |
Probando el nuevo sitio web Virtual Host de Apache desde un equipo externo
Para probar el acceso a nuestro nuevo sitio web www.proyectoa.com desde un equipo externo, si es un equipo Windows de la misma red LAN del servidor web, deberemos «engañar» al equipo para indicar que el sitio web www.proyectoa.com está en la IP del servidor web (en nuestro caso en 192.168.1.224). Para ello editaremos el fichero C:\Windows\System32\drivers\etc\hosts (debemos abrir el editor Notepad u otro como administradores, dado que es un fichero protegido del sistema):

Añadiremos la siguientes líneas al final del fichero hosts:
1 |
192.168.1.224 www.proyectoa.com<br>192.168.1.224 proyectoa.com |
Y guardaremos los cambios.

Ahora, si hacemos ping a proyectoa.com desde el equipo Windows, nos resolverá con la IP del servidor web Rocky Linux, que es lo que pretendemos :

Abriremos cualquier navegador web en el equipo Windows e introduciremos la URL proyectoa.com. Si todo el proceso ha sido correcto, nos mostrará nuestra página de inicio del sitio web:

Para añadir más sitios web, repetiremos el proceso, añadiendo los correspondientes ficheros .conf en la carpeta /etc/httpd/conf.d/sitios_disponibles y /etc/httpd/conf.d/sitios_activos.