Cómo instalar y configurar un servidor web Apache en Linux
Índice
Instalación y configuración de un servidor web Apache en Linux
Apache es uno de los servidores web más populares en el mundo por su robustez, flexible configuración y potente rendimiento. Esta guía explica cómo instalar y configurar un servidor web Apache en Linux.
Instalación de Apache
La instalación de Apache varía dependiendo del sistema de gestión de paquetes de su distribución de Linux. En sistemas basados en Debian y Ubuntu, el paquete se llama apache2, mientras que en sistemas Red Hat, CentOS y Fedora, el paquete se denomina httpd.
# Ubuntu/Debian
sudo apt update
sudo apt install apache2
# Red Hat/CentOS/Fedora
sudo yum install httpd
Inicio de Apache
Una vez instalado el servidor, puede iniciarse utilizando el comando de systemd «systemctl». La habilitación del servicio permitirá su inicio automático al reiniciar el sistema.
# Ubuntu/Debian
sudo systemctl start apache2
sudo systemctl enable apache2
# Red Hat/CentOS/Fedora
sudo systemctl start httpd
sudo systemctl enable httpd
Configuración básica de Apache
La configuración de Apache es flexible y extensible, con una estructura de archivos modular. Los archivos de configuración suelen estar ubicados en /etc/apache2 en Ubuntu y /etc/httpd en CentOS.
Archivo de configuración principal de Apache
El archivo de configuración principal en Ubuntu es /etc/apache2/apache2.conf y en CentOS es /etc/httpd/conf/httpd.conf. Este archivo define la configuración global de Apache incluyendo los módulos activados, los ajustes de rendimiento y las ubicaciones de otros archivos de configuración.
#Para abrir el archivo de configuración en Ubuntu
sudo nano /etc/apache2/apache2.conf
#Para abrir el archivo de configuración en CentOS
sudo nano /etc/httpd/conf/httpd.conf
Crear un host virtual
Los hosts virtuales permiten a Apache servir diferentes sitios web en la misma máquina. Cada host virtual tiene su propio archivo de configuración.
#En Ubuntu, los archivos de host virtual se guardan en /etc/apache2/sites-available/
sudo nano /etc/apache2/sites-available/mywebsite.conf
#En CentOS, se guardan en /etc/httpd/conf.d/
sudo nano /etc/httpd/conf.d/mywebsite.conf
Establecer la configuración básica de su host virtual:
<VirtualHost *:80>
ServerName www.mywebsite.com
ServerAlias mywebsite.com
DocumentRoot /var/www/mywebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Donde:
– ServerName y ServerAlias definen el nombre de dominio del sitio web.
– DocumentRoot especifica la ubicación de los archivos del sitio web.
– ErrorLog y CustomLog definen los archivos de registro de errores y accesos.
Configuraciones avanzadas
Apache puede ser configurado para manejar diferentes tipos de contenido, restringir el acceso, habilitar HTTPS y más.
Configuración de un módulo de Apache
Apache utiliza módulos para manejar diferentes tipos de contenido. Por ejemplo, para servir páginas PHP, necesita el módulo PHP. Para habilitar un módulo en Ubuntu, use el comando a2enmod:
sudo a2enmod php7.2
En CentOS, se habilitan los módulos modificando el archivo de configuración de Apache.
Restricción de acceso
Apache puede restringir el acceso a directorios específicos utilizando el archivo .htaccess. Asegúrate de que Apache esté configurado para leer estos archivos (AllowOverride All) y luego crea un archivo .htaccess en el directorio que deseas proteger:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Aquí, .htpasswd es un archivo que contiene los nombres de usuario y las contraseñas codificadas. Se puede crear utilizando el comando htpasswd.
Habilitación de HTTPS
HTTPS requiere un certificado SSL. Puedes comprarte uno o utilizar Let’s Encrypt para obtener un certificado gratuito.
# Instalar Certbot (cliente Let’s Encrypt) en Ubuntu
sudo apt-get install python-certbot-apache
# Obtener y configurar el certificado SSL
sudo certbot --apache -d www.mywebsite.com
Conclusión
Apache es una herramienta poderosa para servir contenido web. Su flexible configuración y la capacidad de adaptarse a diferentes tipos de contenido, junto con su robusto rendimiento, lo hacen una opción popular para administradores de sistemas. Si bien la configuración básica de un servidor Apache es relativamente simple, la capacidad de personalizarlo para que se ajuste a tus necesidades específicas es donde Apache realmente brilla.