Instalación

Paso 1: Actualizar los índices de paquetes

Antes de instalar cualquier software, es crucial actualizar la lista de paquetes disponibles en los repositorios de Ubuntu. Esto asegura que siempre obtengas las versiones más recientes y estables.

sudo apt update

Paso 2: Instalar el servidor web Apache2

Una vez que los índices están actualizados, procedemos con la instalación de Apache. Usamos apache2 que es el paquete estándar en Ubuntu.

sudo apt install apache2 -y

  • El comando sudo apt install apache2 instala el software Apache2.
  • El flag -y acepta automáticamente cualquier confirmación, haciendo el proceso más rápido.

Paso 3: Verificar el estado del servicio Apache

Después de la instalación, Apache debería iniciarse automáticamente. Es una buena práctica verificar que el servicio esté corriendo sin problemas.

sudo systemctl status apache2

  • Deberías ver una salida que indique active (running). Si no es así, significa que hay un problema y necesitarías investigar los logs.

Paso 4: Ajustar el Firewall (UFW)

Si tienes UFW (Uncomplicated Firewall) habilitado, necesitarás abrir los puertos necesarios para que el servidor web sea accesible desde otros dispositivos.

4.1. Listar los perfiles de aplicación de Apache

Primero, verificamos qué perfiles de Apache están disponibles en UFW:

sudo ufw app list

  • Esto te mostrará opciones como Apache, Apache Full, Apache Secure, entre otras.

4.2. Permitir el tráfico HTTP y HTTPS

Para permitir el tráfico web estándar (HTTP en puerto 80 y HTTPS en puerto 443), utilizamos el perfil Apache Full.

Bash

sudo ufw allow ‘Apache Full’ 

  • Recibiste la confirmación «Reglas actualizadas».

4.3. Habilitar UFW (si está inactivo)

Si tu firewall estaba inactivo (como nos ocurrió), es fundamental habilitarlo para que las reglas que acabas de añadir se apliquen y protejan tu sistema.

sudo ufw enable

  • Recibiste la confirmación «El cortafuegos está activo y habilitado en el arranque del sistema», lo que indica que UFW ya está funcionando y se iniciará automáticamente con el sistema.

4.4. Verificar el estado del firewall

Finalmente, confirmamos que UFW está activo y que las reglas de Apache están aplicadas correctamente.

Bash

sudo ufw status

  • La salida mostró Estado: activo y Apache Full ALLOW Anywhere, confirmando que todo está configurado.

Errores de virtual host

Pasos críticos para aislar el problema:

Vamos a intentar la solución más drástica para asegurarnos de que la configuración es fresca y sin posibles caracteres ocultos.

  1. Deshabilita tu sitio actual y bórralo (temporalmente):

sudo a2dissite prueba-apache.conf

sudo rm /etc/apache2/sites-available/prueba-apache.conf

  1. Esto garantiza que Apache no esté cargando ninguna versión antigua o corrupta de tu archivo.
  2. Crea un nuevo archivo de configuración limpio:

sudo nano /etc/apache2/sites-available/prueba-apache.conf

  1. Copia y pega (o mejor, ESCRIBE MANUALMENTE) este contenido EXACTO en el nuevo archivo:

    Apache

<VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/prueba-apache/public/

    ErrorLog ${APACHE_LOG_DIR}/prueba-error.log

    CustomLog ${APACHE_LOG_DIR}/prueba-access.log combined

    <Directory /var/www/html/prueba-apache/public/>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride All

        Require all granted

    </Directory>

</VirtualHost>

  1.  Presta EXTREMA atención a la línea DocumentRoot. Asegúrate de que no tenga comillas, espacios extra al final, o cualquier otra cosa.
  2. Guarda el archivo (Ctrl + O, Enter, Ctrl + X).
  3. Vuelve a habilitar el sitio:

sudo a2ensite prueba-apache.conf

  1. Deshabilita el sitio por defecto (si no lo has hecho ya):

sudo a2dissite 000-default.conf

  1. Habilita el módulo rewrite (fundamental para Laravel):

sudo a2enmod rewrite

  1. ¡CRÍTICO! Prueba la sintaxis de Apache:

sudo apache2ctl configtest

  1. Si esto no dice Syntax OK, entonces HAY UN ERROR en el archivo que acabas de crear/pegar. Necesitaría que me digas exactamente lo que dice si no es Syntax OK.
  2. Si Syntax OK: Reinicia Apache.

sudo systemctl restart apache2

  1. Verifica el estado de Apache una vez más:

systemctl status apache2.service

  1. Debería mostrar Active: active (running).
    Este proceso de «borrar y empezar de cero» con el archivo de configuración debería eliminar cualquier carácter oculto o problema de guardado que esté causando el error.

Deja una respuesta

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