Instalación de Apache en Ubuntu/Debian
Apache HTTP Server es el servidor web más utilizado del mundo. Es software libre, modular y forma parte del stack LAMP (Linux, Apache, MySQL, PHP). Esta lección cubre la instalación y los comandos esenciales en sistemas Ubuntu/Debian, que es el entorno de referencia de este manual.
Instalación
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y
# Verificar que la instalación fue correcta
apache2 -v
Configuración del firewall
# Permitir HTTP y HTTPS
sudo ufw allow 'Apache Full'
# Habilitar firewall si no está activo
sudo ufw --force enable
# Ver estado
sudo ufw status
Gestión del servicio
sudo systemctl start apache2 # iniciar
sudo systemctl stop apache2 # detener
sudo systemctl restart apache2 # reiniciar (aplica cambios de configuración)
sudo systemctl reload apache2 # recargar sin cortar conexiones activas
sudo systemctl enable apache2 # arrancar automáticamente con el sistema
sudo systemctl status apache2 # ver estado actual
Nota: Usa reload cuando solo cambies la configuración de un VirtualHost o .htaccess. Usa restart cuando actives o desactives módulos.
Estructura de directorios en Ubuntu/Debian
/etc/apache2/
├── apache2.conf # Configuración principal
├── ports.conf # Puertos en escucha (80, 443...)
├── conf-available/ # Configuraciones disponibles
├── conf-enabled/ # Configuraciones activas (enlaces a conf-available/)
├── mods-available/ # Módulos disponibles
├── mods-enabled/ # Módulos activos (enlaces a mods-available/)
├── sites-available/ # VirtualHosts disponibles
├── sites-enabled/ # VirtualHosts activos (enlaces a sites-available/)
└── envvars # Variables de entorno del servicio
El contenido web por defecto se sirve desde /var/www/html/. Los logs están en /var/log/apache2/.
Comandos a2en* / a2dis*
Ubuntu/Debian incluye comandos propios para activar y desactivar sitios, módulos y configuraciones sin editar archivos manualmente:
# Sitios (VirtualHosts)
sudo a2ensite nombre_sitio.conf
sudo a2dissite nombre_sitio.conf
# Módulos
sudo a2enmod nombre_modulo
sudo a2dismod nombre_modulo
# Configuraciones
sudo a2enconf nombre_conf
sudo a2disconf nombre_conf
# Verificar que la configuración no tiene errores de sintaxis
sudo apache2ctl configtest
# Ver módulos cargados actualmente
apache2ctl -M
Nota: Después de instalar Apache, abre http://localhost en el navegador. Si ves la página de bienvenida de Apache ("It works!") el servidor está funcionando correctamente.
En la próxima lección: configuración de Apache: archivo principal, Virtual Hosts y gestión de módulos.