Cómo instalar servidor Apache2 y añadir nuestra plantilla personalizada paso a paso

Cómo instalar Apache2 en Ubuntu y añadir una plantilla personalizada paso a paso (Guía 2026)

Apache2 sigue siendo uno de los servidores web más utilizados del mundo por su fiabilidad, su enorme comunidad y su facilidad de configuración. En esta guía práctica te mostraré cómo instalar Apache2 en Ubuntu, crear un VirtualHost propio y publicar tu plantilla personalizada de forma segura y ordenada.

Si estás empezando en el mundo de los servidores, te recomiendo echar un vistazo antes a nuestra guía completa de Linux para familiarizarte con la terminal, los permisos y los servicios del sistema.


📑 Índice de contenidos

  1. Requisitos previos
  2. Instalación de Apache2
  3. Verificación del servidor
  4. Preparar el directorio de nuestro sitio
  5. Crear el VirtualHost personalizado
  6. Activar el sitio con a2ensite
  7. Ajustar permisos y firewall
  8. Probar la plantilla personalizada
  9. Solución de problemas comunes
  10. Conclusión

🛠️ 1. Requisitos previos

Antes de empezar necesitas:


📦 2. Instalación de Apache2

Actualiza la lista de paquetes e instala Apache con:

sudo apt update
sudo apt install apache2 -y

Comprueba que el servicio esté activo:

sudo systemctl status apache2

Deberías ver el estado active (running). Si el sistema tiene el firewall UFW activo, abre el tráfico web:

sudo ufw allow 'Apache Full'

💡 Apache Full permite los puertos 80 (HTTP) y 443 (HTTPS). Para configurar el firewall en profundidad, consulta nuestra guía de firewall en Linux con UFW y firewalld.


✅ 3. Verificación del servidor

Abre un navegador y visita:

http://TU_IP_PUBLICA

Deberías ver la página de bienvenida de Apache. Si no carga, revisa:

  • Que el servicio está en marcha (systemctl status apache2)
  • Que el firewall permite los puertos
  • Que el proveedor cloud no bloquea el puerto 80

Si tienes problemas de conexión general, consulta nuestra guía para solucionar problemas de conexión a Internet.


📁 4. Preparar el directorio de nuestro sitio

Vamos a crear la carpeta donde residirá nuestra plantilla personalizada. En el ejemplo usaremos /var/www/mi-sitio:

sudo mkdir -p /var/www/mi-sitio

Coloca tu plantilla (HTML, CSS, JS, imágenes…) dentro de esa carpeta. Una estructura típica sería:

/var/www/mi-sitio/
├── index.html
├── css/
├── js/
└── img/

Crea un index.html de prueba:

echo "<h1>¡Mi plantilla personalizada funciona!</h1>" | sudo tee /var/www/mi-sitio/index.html

⚙️ 5. Crear el VirtualHost personalizado

Apache organiza los sitios mediante archivos .conf dentro de /etc/apache2/sites-available/. Vamos a crear uno para nuestro dominio:

sudo nano /etc/apache2/sites-available/mi-sitio.conf

Pega el siguiente contenido (sustituye mi-sitio.com por tu dominio real):

<VirtualHost *:80>
    ServerAdmin webmaster@mi-sitio.com
    ServerName mi-sitio.com
    ServerAlias www.mi-sitio.com
    DocumentRoot /var/www/mi-sitio

    <Directory /var/www/mi-sitio>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/mi-sitio-error.log
    CustomLog ${APACHE_LOG_DIR}/mi-sitio-access.log combined
</VirtualHost>

Explicación de las directivas clave:

DirectivaFunción
ServerNameDominio principal del sitio
ServerAliasDominios alternativos (www)
DocumentRootRuta de la plantilla personalizada
Options -IndexesEvita listar el contenido del directorio
AllowOverride AllPermite usar .htaccess
ErrorLog / CustomLogLogs independientes por sitio

🔒 Si vas a servir contenido sensible, aplica hardening adicional siguiendo nuestra guía de hardening de servidores web Apache vs Nginx.


🚀 6. Activar el sitio con a2ensite

Deshabilita el sitio por defecto y habilita el tuyo:

sudo a2dissite 000-default.conf
sudo a2ensite mi-sitio.conf

Comprueba la sintaxis de la configuración antes de recargar:

sudo apache2ctl configtest

Si aparece Syntax OK, recarga Apache:

sudo systemctl reload apache2

⚠️ Usa reload en lugar de restart siempre que sea posible: no corta las conexiones activas.


🔐 7. Ajustar permisos y firewall

Asigna el propietario correcto (usuario www-data, con el que corre Apache):

sudo chown -R www-data:www-data /var/www/mi-sitio
sudo chmod -R 755 /var/www/mi-sitio

Y asegúrate de que el firewall sigue permitiendo Apache:

sudo ufw status

🌐 8. Probar la plantilla personalizada

Edita tu /etc/hosts en la máquina cliente para simular el dominio antes de propagar el DNS:

IP_DEL_SERVIDOR   mi-sitio.com www.mi-sitio.com

Ahora visita en el navegador:

http://mi-sitio.com

Deberías ver el contenido de tu plantilla. Si quieres servir el sitio con HTTPS, el siguiente paso obligatorio es implementar el protocolo HTTPS correctamente y configurar SSL en Nginx (mismo concepto con Let’s Encrypt que aplica a Apache).


🧰 9. Solución de problemas comunes

SíntomaCausa probableSolución
403 ForbiddenPermisos incorrectoschown www-data:www-data y chmod 755
404 Not FoundFalta index.html o DocumentRoot erróneoRevisa ruta en el .conf
403 Index of /Options Indexes activadoUsar Options -Indexes
El sitio por defecto sigue cargando000-default habilitadoa2dissite 000-default.conf
Could not reliably determine ServerNameFalta ServerName globalAñádelo en /etc/apache2/apache2.conf
Error 413 al subir archivosLímite del servidorRevisa nuestra solución al error 413 en WordPress

Si el servidor va lento tras la puesta en marcha, consulta cómo mejorar el rendimiento de tu servidor Linux y la guía de optimización de servidores Linux.


🏁 10. Conclusión

Ya tienes Apache2 instalado, configurado y sirviendo tu plantilla personalizada mediante un VirtualHost limpio y con logs independientes. Este es el punto de partida ideal para alojar cualquier proyecto web.

Siguientes pasos recomendados:

Si quieres dar el salto a un entorno más profesional, considera montar un laboratorio de ciberseguridad con Proxmox y pfSense o revisar la guía completa sobre Proxmox.

¿Te ha resultado útil esta guía? Déjanos un comentario con tus dudas o comparte cómo has montado tu propio servidor Apache.

Deja un comentario