Cómo instalar Apache en Ubuntu paso a paso

apache en ubuntu

Instalar Apache en Ubuntu es uno de los primeros pasos cuando queremos convertir un servidor vps limpio en un entorno preparado para alojar páginas web. Apache se encarga de recibir las peticiones que llegan desde el navegador y responder mostrando el contenido correspondiente: archivos HTML, imágenes, hojas de estilo, scripts y todo lo necesario para que una web cargue correctamente.

En mi caso, siempre me ha parecido más fácil entender Apache como un puente entre el visitante y los archivos reales del sitio web. Cuando alguien escribe un dominio en el navegador, Apache procesa esa solicitud, busca qué contenido debe entregar y lo muestra al usuario. Esa idea simple ayuda mucho a no perderse cuando después aparecen conceptos como puertos, firewall, Virtual Hosts o certificados SSL.

La buena noticia es que en Ubuntu la instalación de Apache es bastante directa gracias a APT, el gestor de paquetes del sistema. Con unos pocos comandos puedes instalar el servidor web, comprobar que está funcionando, abrir los puertos necesarios y dejar preparada una primera página de prueba.

En esta guía te explico cómo instalar Apache en Ubuntu paso a paso, cómo verificar que funciona, cómo configurarlo con UFW, cómo crear un Virtual Host y qué hacer después para preparar un servidor más completo con PHP, MySQL/MariaDB o HTTPS.


Resumen del Artículo ocultar

Qué es Apache y para qué sirve en Ubuntu

Apache, también conocido como Apache HTTP Server o simplemente Apache2 en Ubuntu, es un servidor web. Su trabajo principal es atender peticiones HTTP y HTTPS, es decir, las solicitudes que hacen los navegadores cuando alguien intenta visitar una página web.

Dicho de forma sencilla: si tienes una web guardada en un servidor Ubuntu, Apache es el programa que permite que esa web sea visible desde un navegador.

Por ejemplo, si guardas un archivo index.html en la carpeta correcta del servidor, Apache puede entregarlo cuando alguien accede a la IP o al dominio asociado. Sin Apache —o sin otro servidor web como Nginx— esos archivos estarían en el servidor, pero no se servirían como una página web accesible desde Internet.

Cómo funciona Apache cuando alguien visita una web

El proceso básico es este:

  1. Una persona escribe un dominio o una IP en su navegador.
  2. El navegador envía una petición al servidor.
  3. Apache recibe esa petición.
  4. Apache revisa su configuración para saber qué sitio debe mostrar.
  5. Devuelve los archivos correspondientes al navegador.

En mi caso, esta explicación fue clave para entender por qué Apache no es “la web” en sí, sino el intermediario que conecta al visitante con los archivos del sitio. Esa diferencia parece pequeña, pero ayuda mucho cuando empiezas a configurar dominios, carpetas, permisos o Virtual Hosts.


Requisitos antes de instalar Apache en Ubuntu

Antes de instalar Apache en Ubuntu, conviene tener preparado lo básico. No necesitas una configuración avanzada, pero sí un entorno mínimo para trabajar con comodidad desde la terminal.

Qué necesitas tener preparado en el servidor

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu instalado.
  • Acceso a la terminal.
  • Un usuario con permisos sudo.
  • Conexión a Internet para instalar paquetes.
  • Opcionalmente, un dominio apuntando a la IP del servidor.

Si estás trabajando en un servidor remoto, lo normal es conectarte por SSH:

ssh usuario@IP_DEL_SERVIDOR

Si estás probando en una máquina local o virtual, puedes ejecutar los comandos directamente en la terminal.

Versiones recomendadas de Ubuntu

Esta guía sirve para versiones modernas de Ubuntu Server, especialmente:

  • Ubuntu 22.04 LTS.
  • Ubuntu 24.04 LTS.

También puede funcionar en versiones anteriores, pero si estás montando un servidor nuevo, lo ideal es usar una versión LTS actual. Las versiones LTS tienen soporte extendido y son más habituales en entornos de servidor.


Actualizar Ubuntu antes de instalar Apache

Antes de instalar cualquier paquete importante, me gusta actualizar la lista de paquetes disponibles. Es un paso rápido y evita problemas con versiones antiguas o repositorios desactualizados.

Comando para actualizar la lista de paquetes

Ejecuta:

sudo apt update

Este comando no instala Apache todavía. Lo que hace es pedirle a Ubuntu que actualice la información de los paquetes disponibles en sus repositorios.

También puedes actualizar los paquetes instalados con:

sudo apt upgrade

No siempre es obligatorio para instalar Apache, pero en un servidor nuevo suele ser buena práctica.


Instalar Apache en Ubuntu con APT

Una de las ventajas de Ubuntu es que Apache está disponible directamente desde los repositorios oficiales. Eso significa que no tienes que descargar archivos manualmente ni compilar nada.

En Ubuntu, Apache se instala con el paquete llamado apache2.

Comando para instalar apache2

Ejecuta:

sudo apt install apache2

Cuando el sistema te pregunte si quieres continuar, confirma con Y o S, según el idioma de tu terminal.

APT descargará e instalará Apache junto con las dependencias necesarias. En la mayoría de instalaciones, el servicio se inicia automáticamente después de instalarse.

Para mí, esta es una de las razones por las que Ubuntu es tan cómodo para empezar: actualizar paquetes, instalar Apache y levantar el servicio se puede hacer con muy pocos comandos.

Qué ocurre después de la instalación

Después de instalar Apache, Ubuntu crea varias carpetas y archivos importantes. Algunos de los más relevantes son:

/var/www/html
/etc/apache2
/etc/apache2/sites-available
/etc/apache2/sites-enabled
/var/log/apache2

La carpeta /var/www/html es la raíz web por defecto. Ahí se encuentra la página inicial que Apache muestra cuando accedes a la IP del servidor.


Comprobar si Apache está funcionando

Una vez instalado Apache, lo siguiente es comprobar que el servicio está activo.

Ver el estado del servicio con systemctl

Ejecuta:

sudo systemctl status apache2

Si todo va bien, deberías ver algo parecido a:

Active: active (running)

Eso significa que Apache está instalado y funcionando.

Para salir de esa vista, pulsa:

q

También puedes usar este comando más directo:

systemctl is-active apache2

Si devuelve:

active

Apache está corriendo correctamente.

Probar Apache desde el navegador

Ahora abre el navegador y visita la IP pública del servidor:

http://IP_DEL_SERVIDOR

Si Apache está funcionando, verás la página por defecto de Ubuntu/Apache. Esta página suele mostrar un mensaje similar a “It works!” o una pantalla informativa de Apache2 Ubuntu Default Page.

Cómo encontrar la IP del servidor

Si no sabes la IP pública del servidor, puedes usar:

curl -4 icanhazip.com

O también:

hostname -I

El primer comando suele mostrar la IP pública. El segundo muestra las IPs asociadas a la máquina, útil sobre todo en entornos locales o redes privadas.


Configurar el firewall UFW para Apache

Si tienes activado UFW, el firewall de Ubuntu, necesitas permitir el tráfico web. De lo contrario, Apache puede estar funcionando perfectamente, pero el navegador no podrá acceder al servidor.

Diferencias entre Apache, Apache Full y Apache Secure

Apache registra varios perfiles en UFW. Puedes verlos con:

sudo ufw app list

Normalmente verás algo como:

Apache
Apache Full
Apache Secure
OpenSSH

La diferencia es:

Perfil UFWQué permite
ApacheTráfico HTTP por el puerto 80
Apache SecureTráfico HTTPS por el puerto 443
Apache FullHTTP y HTTPS, puertos 80 y 443

Abrir el puerto 80 para HTTP

Si solo quieres probar Apache con HTTP, ejecuta:

sudo ufw allow 'Apache'

Después comprueba el estado del firewall:

sudo ufw status

Si UFW está activo, deberías ver una regla permitiendo Apache.

Cuándo abrir también el puerto 443

Si vas a usar HTTPS con un certificado SSL, conviene permitir también el puerto 443:

sudo ufw allow 'Apache Full'

En un servidor real, lo normal es terminar usando HTTPS. Puedes empezar con HTTP para comprobar que Apache funciona, pero después deberías instalar un certificado SSL con Let’s Encrypt o una solución similar.


Comandos básicos para administrar Apache en Ubuntu

Después de instalar Apache, es importante saber cómo iniciar, detener, reiniciar y recargar el servicio. Estos comandos te van a acompañar cada vez que hagas cambios en la configuración.

Iniciar, detener y reiniciar Apache

Para iniciar Apache:

sudo systemctl start apache2

Para detenerlo:

sudo systemctl stop apache2

Para reiniciarlo:

sudo systemctl restart apache2

El reinicio es útil cuando cambias configuraciones importantes, pero corta y vuelve a levantar el servicio.

Recargar Apache sin cortar conexiones

Si solo has cambiado archivos de configuración y quieres aplicar los cambios de forma más suave, puedes usar:

sudo systemctl reload apache2

Este comando recarga la configuración sin detener completamente el servicio.

Antes de recargar o reiniciar, conviene comprobar que no hay errores de sintaxis:

sudo apache2ctl configtest

Si todo está bien, verás:

Syntax OK

Activar o desactivar Apache al arrancar Ubuntu

Para que Apache se inicie automáticamente al arrancar el servidor:

sudo systemctl enable apache2

Para desactivar ese inicio automático:

sudo systemctl disable apache2

En la mayoría de servidores web, lo lógico es dejar Apache activado al arranque.


Crear un Virtual Host en Apache

Los Virtual Hosts permiten alojar una o varias webs en el mismo servidor. Esta es una parte clave de Apache, porque te permite pasar de una simple página de prueba a una configuración más realista.

En mi caso, los Virtual Hosts son el punto donde Apache empieza a tener sentido de verdad: ya no estás mostrando solo la página por defecto, sino organizando sitios concretos por dominio, carpeta y configuración propia.

Para este ejemplo usaré:

tudominio.com

Sustitúyelo por tu dominio real.

Crear la carpeta del sitio web

Crea una carpeta para tu sitio:

sudo mkdir -p /var/www/tudominio.com/html

Asigna permisos al usuario actual:

sudo chown -R $USER:$USER /var/www/tudominio.com/html

Ajusta los permisos básicos:

sudo chmod -R 755 /var/www/tudominio.com

Crear una página HTML de prueba

Crea un archivo index.html:

nano /var/www/tudominio.com/html/index.html

Añade este contenido:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Apache en Ubuntu</title>
</head>
<body>
  <h1>Apache funciona correctamente</h1>
  <p>Esta página se sirve desde un Virtual Host en Ubuntu.</p>
</body>
</html>

Guarda el archivo y sal del editor.

Crear el archivo de configuración del dominio

Ahora crea el archivo del Virtual Host:

sudo nano /etc/apache2/sites-available/tudominio.com.conf

Añade esta configuración:

<VirtualHost *:80>
    ServerAdmin admin@tudominio.com
    ServerName tudominio.com
    ServerAlias www.tudominio.com
    DocumentRoot /var/www/tudominio.com/html

    ErrorLog ${APACHE_LOG_DIR}/tudominio.com_error.log
    CustomLog ${APACHE_LOG_DIR}/tudominio.com_access.log combined
</VirtualHost>

Guarda y cierra el archivo.

Activar el sitio y comprobar la configuración

Activa el nuevo sitio:

sudo a2ensite tudominio.com.conf

Desactiva la configuración por defecto si no la necesitas:

sudo a2dissite 000-default.conf

Comprueba la sintaxis:

sudo apache2ctl configtest

Si todo está bien, recarga Apache:

sudo systemctl reload apache2

Ahora, si el dominio apunta correctamente a tu servidor, deberías ver tu página de prueba al visitar

http://tudominio.com

Archivos y carpetas importantes de Apache en Ubuntu

Apache crea varias rutas importantes en Ubuntu. Conocerlas te ahorra mucho tiempo cuando tienes que editar configuraciones, revisar errores o subir archivos web.

Dónde se guardan los archivos web

La carpeta por defecto es:

/var/www/html

Si creas Virtual Hosts, lo normal es usar carpetas separadas:

/var/www/tudominio.com/html

Esto mantiene cada sitio organizado y evita mezclar archivos.

Dónde están los archivos de configuración

La configuración principal de Apache está en:

/etc/apache2/apache2.conf

Los sitios disponibles se guardan en:

/etc/apache2/sites-available

Los sitios activos se enlazan desde:

/etc/apache2/sites-enabled

Los módulos disponibles están en:

/etc/apache2/mods-available

Y los módulos activos en:

/etc/apache2/mods-enabled

Dónde consultar los logs de Apache

Los logs son fundamentales para diagnosticar errores. Los más importantes son:

/var/log/apache2/access.log
/var/log/apache2/error.log

El archivo access.log registra accesos al servidor. El archivo error.log muestra errores de Apache, problemas de configuración, permisos o fallos al cargar recursos.

Para ver los últimos errores:

sudo tail -n 50 /var/log/apache2/error.log

Para seguir el log en tiempo real

sudo tail -f /var/log/apache2/error.log

Errores comunes al instalar Apache en Ubuntu

Aunque instalar Apache en Ubuntu suele ser sencillo, hay varios errores bastante habituales. Lo bueno es que casi todos tienen una solución clara.

Apache no carga en el navegador

Si instalaste Apache pero no puedes acceder desde el navegador, revisa primero el estado del servicio:

sudo systemctl status apache2

Luego comprueba si Apache está escuchando en el puerto 80:

sudo ss -tulpn | grep :80

También asegúrate de estar usando la IP correcta:

curl -4 icanhazip.com

El firewall bloquea el acceso

Si UFW está activo y no has permitido Apache, el navegador no podrá conectar.

Comprueba el estado:

sudo ufw status

Permite HTTP:

sudo ufw allow 'Apache'

O permite HTTP y HTTPS:

sudo ufw allow 'Apache Full'
El puerto 80 ya está ocupado

Si Apache no arranca, puede que otro servicio esté usando el puerto 80.

Compruébalo con:
sudo ss -tulpn | grep :80

Si aparece otro servidor web, como Nginx, tendrás que detenerlo o cambiar la configuración.

Por ejemplo:

sudo systemctl stop nginx

Después intenta reiniciar Apache:

sudo systemctl restart apache2

Error de sintaxis en el Virtual Host

Si Apache falla después de editar un archivo .conf, revisa la sintaxis:

sudo apache2ctl configtest

Si aparece un error, Apache suele indicar el archivo y la línea donde está el problema. Corrige el archivo y vuelve a probar.


Qué hacer después de instalar Apache

Instalar Apache es solo el primer paso. A partir de ahí puedes preparar un entorno mucho más completo según el tipo de web que quieras alojar.

Apache no se queda solo en servir HTML. También puede trabajar con PHP, bases de datos y certificados SSL, así que es una base muy útil para proyectos más completos.

Instalar PHP y preparar una pila LAMP

Si quieres alojar una web dinámica, como una aplicación en PHP o WordPress, necesitarás instalar PHP:

sudo apt install php libapache2-mod-php

Después reinicia Apache:

sudo systemctl restart apache2

Puedes comprobar la versión de PHP con:

php -v

Añadir MySQL o MariaDB

Para aplicaciones que necesitan base de datos, puedes instalar MySQL:

sudo apt install mysql-server

O MariaDB:

sudo apt install mariadb-server

Apache + MySQL/MariaDB + PHP forman lo que se conoce como pila LAMP: Linux, Apache, MySQL/MariaDB y PHP.

Activar HTTPS con SSL

En un servidor real, no deberías quedarte solo con HTTP. Lo recomendable es activar HTTPS con un certificado SSL.

Una opción habitual es usar Certbot con Let’s Encrypt:

sudo apt install certbot python3-certbot-apache

Luego puedes solicitar el certificado:

sudo certbot --apache

Esto configura HTTPS en Apache y permite que tu web cargue de forma segura.


Tabla rápida de comandos esenciales

AcciónComando
Actualizar paquetessudo apt update
Instalar Apachesudo apt install apache2
Ver estado de Apachesudo systemctl status apache2
Iniciar Apachesudo systemctl start apache2
Detener Apachesudo systemctl stop apache2
Reiniciar Apachesudo systemctl restart apache2
Recargar configuraciónsudo systemctl reload apache2
Activar Apache al arranquesudo systemctl enable apache2
Ver perfiles UFWsudo ufw app list
Permitir HTTPsudo ufw allow 'Apache'
Permitir HTTP y HTTPSsudo ufw allow 'Apache Full'
Probar configuraciónsudo apache2ctl configtest
Activar sitiosudo a2ensite tudominio.com.conf
Desactivar sitiosudo a2dissite 000-default.conf
Ver logs de errorsudo tail -f /var/log/apache2/error.log

Sobre la instalación de apache en ubuntu

Instalar Apache en Ubuntu es un proceso bastante sencillo, pero entender qué estás haciendo en cada paso marca la diferencia. No se trata solo de ejecutar sudo apt install apache2, sino de saber cómo comprobar el servicio, abrir el firewall, ubicar los archivos web, crear Virtual Hosts y preparar el servidor para proyectos reales.

Apache actúa como intermediario entre el navegador del visitante y los archivos del sitio web almacenados en el servidor. Esa idea es la base de todo: una vez la entiendes, conceptos como DocumentRoot, puertos, dominios, logs o certificados SSL encajan mucho mejor.

Mi recomendación es empezar por una instalación limpia, comprobar que la página por defecto carga correctamente, crear un Virtual Host sencillo y, a partir de ahí, añadir lo que necesites: PHP, MySQL/MariaDB, HTTPS o WordPress.

Con eso tendrás una base sólida para administrar un servidor web en Ubuntu.


Dudas de la comunidad

¿Cómo instalar Apache en Ubuntu?

Puedes instalar Apache en Ubuntu con:

sudo apt update
sudo apt install apache2

Después comprueba que está funcionando:

sudo systemctl status apache2

¿Cómo saber si Apache está activo?

Usa este comando:

sudo systemctl status apache2

Si ves active (running), Apache está funcionando correctamente.

También puedes comprobarlo desde el navegador visitando la IP del servidor:

http://IP_DEL_SERVIDOR

¿Dónde está la carpeta raíz de Apache?

La carpeta raíz por defecto es:

/var/www/html

Si configuras Virtual Hosts, puedes usar carpetas personalizadas como:

/var/www/tudominio.com/html

¿Qué diferencia hay entre Apache y Apache2?

En la práctica, cuando hablamos de Apache en Ubuntu nos referimos al paquete apache2. Apache es el nombre general del servidor web, mientras que apache2 es el nombre del paquete y del servicio en Ubuntu.

Por eso los comandos suelen usar:

sudo systemctl status apache2

¿Cómo reiniciar Apache en Ubuntu?

Para reiniciar Apache:

sudo systemctl restart apache2

Si solo quieres recargar la configuración sin detener completamente el servicio:

sudo systemctl reload apache2

¿Puedo usar Apache para WordPress?

Sí. Apache puede usarse perfectamente para WordPress, pero necesitarás añadir PHP y una base de datos como MySQL o MariaDB. Esa combinación se conoce como pila LAMP.

Una instalación básica sería:

sudo apt install apache2 php libapache2-mod-php mysql-server

Después habría que crear la base de datos, descargar WordPress y configurar el Virtual Host correspondiente.

Opinión Personal

Instalar Apache en Ubuntu es uno de esos pasos que parecen muy técnicos al principio, pero que realmente ayudan a entender cómo funciona una web desde dentro. No se trata solo de copiar comandos en la terminal, sino de comprender qué ocurre cuando alguien escribe un dominio en el navegador y el servidor responde mostrando una página.

Lo que más me gusta de Apache es que combina sencillez y potencia. Puedes empezar con una instalación básica en pocos minutos usando APT, comprobar que el servicio está activo y ver la página por defecto en el navegador. Pero, al mismo tiempo, tienes margen para crecer: configurar Virtual Hosts, añadir PHP, conectar una base de datos, activar SSL y preparar un entorno mucho más profesional.

También creo que aprender Apache sigue siendo muy útil, incluso aunque hoy existan alternativas como Nginx. Apache continúa siendo una base sólida para quienes quieren administrar servidores, montar proyectos web o entender mejor cómo se sirven las páginas en Internet. Además, en Ubuntu todo el proceso resulta bastante accesible si se explica paso a paso y sin complicarlo más de la cuenta.

Personalmente, lo veo como una puerta de entrada ideal al mundo de la administración web: empiezas instalando un servidor, pero acabas aprendiendo sobre puertos, permisos, dominios, logs, seguridad y rendimiento.

¿Tú ya has instalado Apache en Ubuntu o estás pensando hacerlo? Déjame tu experiencia, dudas o problemas en los comentarios. Me encantará leerte y ayudarte.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *