El servidor HTTP Apache es el servidor web más utilizado del mundo. Proporciona muchas funciones potentes que incluyen módulos cargables dinámicamente, soporte multimedia y amplia integración con otro software popular. En esta guía, aprenderás cómo Instalar Apache2 en Ubuntu.
Paso 1: Instalación
Ejecutamos los siguientes comandos, si ya tienes instalado estos paquetes puedes saltarte este paso:
sudo apt update
sudo apt install apache2
Paso 2: Verificación del estado del servidor
Confirma que está en ejecución:
sudo systemctl status apache2
Paso 3: Configuración del Virtual Host
Nos dirigimos a la ruta de apache2, en donde encontramos la configuración de los sitios que levantaremos
cd /etc/apache2/sites-available/
El siguiente paso es eliminar los archivos por defecto o de ejemplo que nos vienen con la instalación. Dejamos la carpeta vacia, ejecutando los siguientes comandos.
sudo rm 000-default.conf
sudo rm default-ssl.con
Crea un nuevo archivo de configuración para tu sitio.
sudo nano /etc/apache2/sites-available/tudominio.conf
Agrega la siguiente configuración básica del Virtual Host, si por alguna razon, no tienes un dominio propio, puedes cambiar tudominio.com por tu ip. Ajusta las rutas y configuraciones según tus necesidades:
<VirtualHost *:80>
ServerAdmin webmaster@tudominio.com
DocumentRoot /var/www/html/carpeta_raiz_proyecto
ServerName tudominio.com
ServerAlias www.tudominio.com
<Directory /var/www/html/carpeta_raiz_proyecto>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Guarda los cambios,habilita el sitio y por último reinicia el servidor apache:
sudo a2ensite tudominio.conf
sudo systemctl restart apache2
Deberás ver que ahora se ha agregado un nuevo acceso directo en la carpeta /etc/apache2/sites-enables/
Paso 4: Configura el firewall
Debes habilitar los puertos para que puedas acceder desde el exterior a tu sitio, sin embargo, puede que no necesites hacer este paso, para ello puedes instalar la herramienta nmap y revisar que tu servidor tenga el puerto 80 disponible. El firewall por defecto de ubuntu es ufw, podemos listar las aplicaciones con el siguiente comando en consola
sudo ufw app list
Nos debería mostrar algo como esto
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Como se indica en el resultado, hay tres perfiles disponibles y en consecuencia deberemos elegir uno:
Apache
Este perfil abre solo el puerto 80 (tráfico web normal sin cifrar), o sea, el trafico web estaría sin cifrar, bajo el protocolo HTTP.
Apache Full
Este perfil abre tanto el puerto 80 (tráfico web normal sin cifrar), como también el puerto 443 (tráfico cifrado TLS/SSL), o sea, tendremos protocolo HTTP y HTTPS disponible
Apache Secure
Este perfil abre solo el puerto 443 (tráfico cifrado TLS/SSL), o sea, el trafico web estará bajo el protocolo HTTPS.
Elegiremos Apache Full, ya que esto nos servirá en nuestro próximo post (https://tenocode.com/apache-ssl-con-lets-encrypt-en-ubuntu/)
sudo ufw allow 'Apache Full'
La salida deberá ser algo así
Rules updated
Rules updated (v6)
Revisamos que nuestro firewall este arriba
sudo systemctl status ufw
La salida debería ser
● ufw.service – Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2023-12-26 13:50:51 UTC; 1h 41min ago
Docs: man:ufw(8)
Main PID: 379 (code=exited, status=0/SUCCESS)
CPU: 2ms
Dec 26 13:50:51 catalogv10 systemd[1]: Starting Uncomplicated firewall…
Dec 26 13:50:51 catalogv10 systemd[1]: Finished Uncomplicated firewall.
Si esta abajo lo levantamos con
sudo systemctl start ufw
Paso 5: Verificación de la Configuración
Accede a tu sitio en el navegador y verifica que todo esté funcionando correctamente.
¡Excelente! Ahora, has terminado de Instalar Apache2 en Ubuntu y has asegurado los puertos necesarios utilizando UFW. Asegúrate de ajustar cualquier configuración adicional según tus necesidades específicas.
En el próximo post veremos cómo agregar ssl con Let’s Encrypt https://tenocode.com/apache-ssl-con-lets-encrypt-en-ubuntu/