Requisitos del sistema
Para este proceso se necesita un servidor o máquina local con Ubuntu, acceso administrativo (sudo) y los archivos estáticos del proyecto (HTML, CSS, JS).
Instalación del servidor web
Primero, sincronizamos los repositorios y procedemos a instalar el paquete:
sudo apt-get update
sudo apt-get install apache2 -y
Para confirmar que el servicio está activo, ejecutamos:
sudo systemctl is-active apache2
Configuración del cortafuegos
En entornos cloud, es vital habilitar el tráfico HTTP. Habilitamos el perfil de Apache en UFW y recargamos las reglas:
sudo ufw allow in "Apache"
sudo ufw reload
Recuerda también abrir el puerto correspondiente en el panel de seguridad de tu proveedor de nube.
Preparación del directorio de despliegue
Aunque Apache usa /var/www/html por defecto, es mejor práctica aislar el proyecto. Crearemos una estructura dedicada:
sudo mkdir -p /var/www/mi_sitio
Asignamos los permisos adecuados para que el servidor pueda leer los archivos sin problemas:
sudo chown -R www-data:www-data /var/www/mi_sitio
sudo chmod -R 755 /var/www/mi_sitio
Sube tus archivos a este nuevo directorio mediante SCP, FTP o creación directa.
Configuración del Virtual Host
Definiremos un nuevo bloque de servidor en un archivo independiente, utilizando el puerto 8080 para este ejemplo:
sudo nano /etc/apache2/sites-available/mi_sitio.conf
Contenido del arcchivo de configuración:
<VirtualHost *:8080>
ServerAdmin admin@midominio.com
DocumentRoot /var/www/mi_sitio
ServerName midominio.com
ErrorLog ${APACHE_LOG_DIR}/mi_sitio_error.log
CustomLog ${APACHE_LOG_DIR}/mi_sitio_acceso.log combined
</VirtualHost>
Gestión de módulos y puertos
Desactviamos la configuración predeterminada y habilitamos la nueva:
sudo a2dissite 000-default.conf
sudo a2ensite mi_sitio.conf
Como utilizamos un puerto no estándar (8080), debemos indicarle a Apache que escuche en él. Editamos el archivo de puertos:
sudo nano /etc/apache2/ports.conf
Añadimos la directiva Listen 8080 junto a la existente:
Listen 80
Listen 8080
Aplicamos los cambios reiniciando el demonio:
sudo systemctl restart apache2
Verificación del sitio
Para acceder localmente, abre en el navegador:
http://127.0.0.1:8080
Si estás en un servidor remoto, utiliza la IP pública:
http://[IP_PÚBLICA]:8080