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.
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:
- Una persona escribe un dominio o una IP en su navegador.
- El navegador envía una petición al servidor.
- Apache recibe esa petición.
- Apache revisa su configuración para saber qué sitio debe mostrar.
- 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.
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 UFW | Qué permite |
|---|---|
| Apache | Tráfico HTTP por el puerto 80 |
| Apache Secure | Tráfico HTTPS por el puerto 443 |
| Apache Full | HTTP 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.
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ón | Comando |
|---|---|
| Actualizar paquetes | sudo apt update |
| Instalar Apache | sudo apt install apache2 |
| Ver estado de Apache | sudo systemctl status apache2 |
| Iniciar Apache | sudo systemctl start apache2 |
| Detener Apache | sudo systemctl stop apache2 |
| Reiniciar Apache | sudo systemctl restart apache2 |
| Recargar configuración | sudo systemctl reload apache2 |
| Activar Apache al arranque | sudo systemctl enable apache2 |
| Ver perfiles UFW | sudo ufw app list |
| Permitir HTTP | sudo ufw allow 'Apache' |
| Permitir HTTP y HTTPS | sudo ufw allow 'Apache Full' |
| Probar configuración | sudo apache2ctl configtest |
| Activar sitio | sudo a2ensite tudominio.com.conf |
| Desactivar sitio | sudo a2dissite 000-default.conf |
| Ver logs de error | sudo 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.




