Servidor HTTP Apache, conocido como Apache, es un servidor web gratuito y de código abierto, creado por Apache Software Foundation. Lanzado a principios de los años 90, Apache ha sido durante mucho tiempo el servidor web dominante en Internet, gracias a su modularidad, flexibilidad y confiabilidad. Soporta una amplia gama de características, incluyendo hosts virtuales, SSL/TLS y un sistema de configuración flexible. Apache está disponible para diferentes sistemas operativos, incluyendo UNIX, Linux y Windows. En este artículo, veremos cómo instalar Apache en Debian 11. Las instrucciones también serán válidas para versiones anteriores, como Debian 10 y posteriores, como Debian 12.
Si sigue nuestro curso sobre cómo instalar WordPress en un servidor con Debian 11 sin panel de control y ya ha realizado la instalación de nginx, primero detenga nginx
sudo systemctl stop nginx
Ahora podemos proceder con la instalación de Apache.
Aquí hay una guía paso a paso para instalar Apache en Debian 11:
Paso 1. Actualización del sistema
Primero, actualice la lista de paquetes disponibles:
sudo apt update
Paso 2: Instalación de Apache
sudo apt install apache2
Paso 3. Iniciar Apache en Debian 11
sudo systemctl start apache2
Paso 4. Verificar el estado de Apache
sudo systemctl status apache2
Si todo ha ido bien, verá el mensaje «active (running)».
Paso 5: Configuración del firewall
Con UFW, permita el tráfico para Apache. Para hacer esto, ejecute el comando:
sudo ufw allow 'WWW Full'
Paso 6: Verificación del funcionamiento de Apache
Abra en su navegador la IP de su servidor o dominio. Para nuestro curso, se usa el subdominio http://test.friendhosting.net
Si todo está en orden, debería ver la página estándar «Apache2 Debian Default Page».
Paso 7: Creación del directorio para su sitio
Para crear el directorio raíz para el host virtual test.friendhosting.net, debe ejecutar el siguiente comando en el terminal:
sudo mkdir -p /var/www/test.friendhosting.net
Tras ejecutar este comando, se creará el directorio test.friendhosting.net en el directorio /var/www/, así como todos los directorios padres necesarios en el camino, si aún no se han creado.
Para establecer los permisos correctos, ejecute el comando:
sudo chown -R www-data:www-data /var/www/test.friendhosting.net
Ejecutar este comando cambiará el propietario y grupo del directorio /var/www/test.friendhosting.net y todos sus subdirectorios y archivos a www-data. Esto se hace para que el servidor web pueda trabajar correctamente con el contenido de este directorio, teniendo los derechos para leer, escribir o ejecutar operaciones dependiendo de la configuración.
Paso 8: Configuración del Host Virtual Apache en Debian 11
Los hosts virtuales permiten que su servidor web Apache reciba solicitudes y sirva diferentes dominios, como si tuviera varios servidores web en un solo servidor físico.
Apache tiene un directorio sites-available, donde se almacenan las configuraciones de hosts virtuales disponibles. Cada sitio necesita un archivo separado. Cree un archivo de configuración para el sitio. Como ejemplo, usaremos test.friendhosting.net
sudo nano /etc/apache2/sites-available/test.friendhosting.net.conf
Añada la siguiente configuración:
<VirtualHost *:80> ServerAdmin [email protected] ServerName test.friendhosting.net ServerAlias www.test.friendhosting.net DocumentRoot /var/www/test.friendhosting.net/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Cada directiva en la configuración de un host virtual de Apache tiene su rol y es importante para la configuración adecuada del alojamiento de un sitio web. Aquí hay una descripción detallada de cada una de ellas:
ServerAdmin indica la dirección de correo electrónico del administrador del sitio. Esta dirección a menudo se muestra en las páginas de error del servidor para que los visitantes puedan informar sobre problemas técnicos. En el ejemplo, [email protected] es la dirección a la que se enviará información sobre los problemas.
ServerName establece el dominio principal que atiende el host virtual. Cuando Apache recibe una solicitud, utiliza el valor de ServerName para determinar qué host virtual utilizar. El valor test.friendhosting.net indica que este host virtual responderá a las solicitudes dirigidas a ese dominio.
ServerAlias define dominios adicionales que serán atendidos por este host virtual. Esto permite que un host virtual responda a solicitudes para diferentes nombres de dominio. En este caso, www.test.friendhosting.net es un alias, y el host virtual también procesará las solicitudes para la versión www del dominio.
DocumentRoot establece el directorio donde se almacenan los archivos del sitio web. Esta es la carpeta raíz desde la cual Apache servirá el contenido para el host virtual. En el ejemplo, /var/www/test.friendhosting.net/ es la carpeta donde se ubicarán todos los archivos del sitio, como HTML, CSS, JavaScript e imágenes.
ErrorLog especifica la ruta al archivo donde se registrarán los mensajes de error del servidor. Este log contiene información detallada sobre cualquier error que ocurrió en el servidor y se utiliza a menudo para diagnosticar problemas. En este ejemplo, ${APACHE_LOG_DIR}/error.log utiliza la variable de entorno APACHE_LOG_DIR, que normalmente se define como /var/log/apache2.
CustomLog señala la ruta al archivo de registro de accesos, donde se registra información sobre cada solicitud al servidor. Esto incluye detalles como la dirección IP del visitante, la URL solicitada, la hora de la solicitud y el código de estado de la respuesta del servidor. La directiva ‘combined’ al final significa que se utilizará el formato de registro combinado, que es un estándar aceptado generalmente y contiene información útil como el referente (de dónde vino el usuario) e información sobre el agente de usuario (qué navegador se utilizó).
Es hora de activar tu host virtual. Para ello, ejecuta el siguiente comando:
sudo a2ensite test.friendhosting.net
Ahora desactiva el host virtual predeterminado. Para ello, ejecuta el siguiente comando:
sudo a2dissite 000-default.conf
Reinicia Apache:
sudo systemctl restart apache2
Crearemos index.html en el directorio raíz de nuestro sitio. Ejecuta el comando:
sudo nano /var/www/test.friendhosting.net/index.html
y copia allí el siguiente texto:
Virtual host test.friendhosting.net is working.
Ahora, al abrir nuestro dominio http://test.friendhosting.net en un navegador, veremos la página estándar:
Esta es una instrucción básica para instalar y configurar Apache en Debian 11. Hay muchas configuraciones y optimizaciones adicionales que puedes realizar para adaptar el servidor a tus necesidades de la mejor manera posible.