Cómo instalar el servidor web Apache en Ubuntu 18.04

Introducción
El servidor HTTP Apache es el servidor web más utilizado en el mundo. Ofrece muchas funciones potentes, entre ellas módulos que se pueden cargar de forma dinámica, un sólido soporte multimedia y una amplia integración con otros programas populares.
En esta guía, aprenderá a instalar un servidor web Apache en su servidor Ubuntu 18.04. Esta guía también incluye información sobre archivos y directorios importantes de Apache.
Prerrequisitos
Antes de comenzar con esta guía, debe tener un usuario regular, no root, con privilegios sudo configurados en su servidor. Además, deberá habilitar un firewall básico para bloquear los puertos no esenciales. Puede aprender a configurar una cuenta de usuario regular y configurar un firewall para su servidor siguiendo nuestra guía de configuración inicial del servidor para Ubuntu 18.04 .
Cuando haya creado una cuenta, inicie sesión como usuario no root para comenzar.
Paso 1: Instalación de Apache
Apache está disponible dentro de los repositorios de software predeterminados de Ubuntu, lo que hace posible instalarlo utilizando herramientas de administración de paquetes convencionales.
Comencemos actualizando el índice de paquetes locales para reflejar los últimos cambios ascendentes:
- sudo apt update
Luego, instala el apache2
paquete:
- sudo apt install apache2
Después de confirmar la instalación, apt
se instalará Apache y todas las dependencias necesarias.
Paso 2: Ajuste del firewall
Antes de probar Apache, es necesario modificar la configuración del firewall para permitir el acceso externo a los puertos web predeterminados. Si siguió las instrucciones de los requisitos previos, debería tener un firewall UFW configurado para restringir el acceso a su servidor.
Durante la instalación, Apache se registra en UFW para proporcionar algunos perfiles de aplicación que pueden usarse para habilitar o deshabilitar el acceso a Apache a través del firewall.
Enumere los ufw
perfiles de aplicación ejecutando el siguiente comando:
- sudo ufw app list
Esto devolverá una lista de los perfiles de la aplicación:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Esta lista indica que hay tres perfiles disponibles para Apache:
- Apache : este perfil solo abre el puerto
80
(tráfico web normal, sin cifrar) - Apache Full : este perfil abre tanto el puerto
80
(tráfico web normal, sin cifrar) como el puerto443
(tráfico cifrado TLS/SSL) - Apache Secure : este perfil abre solo el puerto
443
(tráfico cifrado TLS/SSL)
Se recomienda que habilite el perfil más restrictivo que aún permita el tráfico que ha configurado. Dado que aún no ha configurado SSL para su servidor en esta guía, solo necesitará permitir el tráfico en el puerto 80
:
- sudo ufw allow 'Apache'
Verifique este cambio verificando el estado:
- sudo ufw status
Ahora el tráfico HTTP permitido se mostrará en la salida:
OutputStatus: activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
El Apache
perfil ahora se ha activado para permitir el acceso al servidor web.
Paso 3: Comprobación del servidor web
Al finalizar el proceso de instalación, Ubuntu 18.04 inicia Apache. El servidor web ya debería estar en funcionamiento.
Verifique el systemd
sistema de inicio para asegurarse de que el servicio se esté ejecutando:
- sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2021-09-28 16:52:56 UTC; 1min 14s ago Main PID: 9409 (apache2) Tasks: 55 (limit: 4915) CGroup: /system.slice/apache2.service ├─9409 /usr/sbin/apache2 -k start ├─9410 /usr/sbin/apache2 -k start └─9411 /usr/sbin/apache2 -k start
Este resultado demuestra que el servicio se ha iniciado correctamente. Sin embargo, la mejor forma de comprobarlo es solicitar una página a Apache.
Puede acceder a la página de inicio predeterminada de Apache para confirmar que el software se está ejecutando correctamente a través de su dirección IP. Si no conoce la dirección IP de su servidor, puede obtenerla de diferentes maneras desde la línea de comandos.
Ejecute lo siguiente en el símbolo del sistema de su servidor:
- hostname -I
Recibirás algunas direcciones separadas por espacios. Puedes probar cada una en tu navegador web para comprobar si funcionan.
Una alternativa es ejecutar el siguiente comando, que debería proporcionarle su dirección IP pública tal como se identifica desde otra ubicación en Internet:
- curl -4 icanhazip.com
Cuando tenga la dirección IP de su servidor, ingrésela en la barra de direcciones de su navegador:
http://your_server_ip
Debería recibir la página web predeterminada de Apache en Ubuntu 18.04:
Esta página web indica que Apache está funcionando correctamente. También incluye información básica sobre archivos y ubicaciones de directorios importantes de Apache.
Paso 4: Gestión del proceso Apache
Ahora que tiene su servidor web en funcionamiento, repasemos algunos comandos de administración básicos.
Puede detener su servidor web con el siguiente comando:
- sudo systemctl stop apache2
Para iniciar el servidor web cuando esté detenido, ejecute este comando:
- sudo systemctl start apache2
Puede detener y luego iniciar nuevamente el servicio ejecutando lo siguiente:
- sudo systemctl restart apache2
Si solo realiza cambios de configuración, Apache puede volver a cargarse sin interrumpir las conexiones. Para ello, ejecute el siguiente comando:
- sudo systemctl reload apache2
De forma predeterminada, Apache está configurado para iniciarse automáticamente cuando se inicia el servidor. Si no es esto lo que desea, puede desactivar este comportamiento con lo siguiente:
- sudo systemctl disable apache2
Como alternativa, para habilitar o volver a habilitar el servicio para que se inicie durante el arranque, ejecute este comando:
- sudo systemctl enable apache2
Apache ahora debería iniciarse automáticamente cuando el servidor se reinicie nuevamente.
Paso 5: Configuración de hosts virtuales (recomendado)
Al utilizar el servidor web Apache, puede utilizar hosts virtuales (similares a los bloques de servidor en Nginx) para encapsular los detalles de configuración y alojar más de un dominio desde un solo servidor. Para nuestro ejemplo, configuraremos un dominio llamado your_domain , pero debe reemplazarlo con su propio nombre de dominio . Para obtener más información sobre cómo configurar un nombre de dominio con DigitalOcean, lea nuestra Introducción a DigitalOcean DNS .
Apache en Ubuntu 18.04 tiene un bloque de servidor habilitado de manera predeterminada que está configurado para servir documentos desde el /var/www/html
directorio. Si bien esto funciona bien para un solo sitio, puede volverse complicado si está alojando varios sitios. En lugar de modificar /var/www/html
, cree una estructura de directorio dentro de /var/www
para un sitio your_domain/var/www/html
y déjelo como el directorio predeterminado que se servirá si una solicitud de cliente no coincide con ningún otro sitio.
Cree el directorio para su_dominio de la siguiente manera:
- sudo mkdir /var/www/your_domain
A continuación, asigne la propiedad del directorio con la $USER
variable de entorno:
- sudo chown -R $USER:$USER /var/www/your_domain
Los permisos de tus raíces web deberían ser correctos si no has modificado su unmask
valor, pero puedes asegurarte escribiendo lo siguiente:
- sudo chmod -R 755 /var/www/your_domain
A continuación, crea una index.html
página de muestra utilizando nano
tu editor favorito:
- nano /var/www/your_domain/index.html
Dentro, agregue el siguiente HTML de muestra:
/var/www/tu_dominio/index.html
html head titleWelcome to Your_domain!/title /head body h1Success! The your_domain virtual host is working!/h1 /body/html
Guarde y cierre el archivo cuando haya terminado. Si utilizó nano
, puede salir presionando CTRL + X
, luego Y
, y ENTER
.
Para que Apache pueda ofrecer este contenido, es necesario crear un archivo de host virtual con las directivas correctas. En lugar de modificar el archivo de configuración predeterminado ubicado /etc/apache2/sites-available/000-default.conf
directamente en , cree uno nuevo en :/etc/apache2/sites-available/your_domain.conf
- sudo nano /etc/apache2/sites-available/your_domain.conf
Agregue el siguiente bloque de configuración, que es similar al predeterminado, pero actualizado para su nuevo directorio y nombre de dominio:
/etc/apache2/sitios-disponibles/su_dominio.conf
VirtualHost *:80 ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined/VirtualHost
Tenga en cuenta que hemos actualizado el DocumentRoot
directorio nuevo y ServerAdmin
un correo electrónico al que puede acceder el administrador del sitio your_domain . También hemos agregado dos directivas: ServerName
, que establece el dominio base que debe coincidir con esta definición de host virtual, y ServerAlias
, que define otros nombres que deben coincidir como si fueran el nombre base.
Guarde y cierre el archivo cuando haya terminado.
A continuación, habilite el archivo con la a2ensite
herramienta:
- sudo a2ensite your_domain.conf
Deshabilitar el sitio predeterminado definido en 000-default.conf
:
- sudo a2dissite 000-default.conf
Ahora pruebe si hay errores de configuración:
- sudo apache2ctl configtest
Debería recibir el siguiente resultado:
OutputSyntax OK
Reinicie Apache para implementar los cambios:
- sudo systemctl restart apache2
Apache debería ahora servir a tu nombre de dominio. Puedes comprobarlo navegando a , donde deberías recibir algo parecido a lo siguiente:http://your_domain
Paso 6: Familiarizarse con los archivos y directorios importantes de Apache
Ahora que sabe cómo administrar el servicio Apache, debería tomarse unos minutos para familiarizarse con algunos directorios y archivos importantes.
Contenido
/var/www/html
:El contenido web real, que por defecto solo consta de la página predeterminada de Apache que viste antes, se entrega desde el/var/www/html
directorio. Esto se puede cambiar modificando los archivos de configuración de Apache.
Configuración del servidor
/etc/apache2
:El directorio de configuración de Apache. Todos los archivos de configuración de Apache residen aquí./etc/apache2/apache2.conf
: El archivo de configuración principal de Apache. Puede modificarse para realizar cambios en la configuración global de Apache. Este archivo es responsable de cargar muchos de los otros archivos en el directorio de configuración./etc/apache2/ports.conf
:Este archivo especifica los puertos en los que Apache escuchará. De manera predeterminada, Apache escucha en el puerto 80 y, además, escucha en el puerto 443 cuando se habilita un módulo que proporciona capacidades SSL./etc/apache2/sites-available/
: El directorio donde se pueden almacenar los hosts virtuales por sitio. Apache no utilizará los archivos de configuración que se encuentran en este directorio a menos que estén vinculados alsites-enabled
directorio. Normalmente, toda la configuración del bloque del servidor se realiza en este directorio y luego se habilita mediante el vínculo al otro directorio con ela2ensite
comando./etc/apache2/sites-enabled/
: El directorio donde se almacenan los hosts virtuales habilitados por sitio. Normalmente, se crean mediante vínculos a archivos de configuración que se encuentran en elsites-available
directorio con el nombrea2ensite
. Apache lee los archivos de configuración y los vínculos que se encuentran en este directorio cuando se inicia o se recarga para compilar una configuración completa./etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Estos directorios tienen la misma relación que los directoriossites-available
ysites-enabled
, pero se utilizan para almacenar fragmentos de configuración que no pertenecen a un host virtual. Los archivos delconf-available
directorio se pueden habilitar con ela2enconf
comando y deshabilitar con ela2disconf
comando ./etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Estos directorios contienen los módulos disponibles y habilitados, respectivamente. Los archivos que terminan en.load
contienen fragmentos para cargar módulos específicos, mientras que los archivos que terminan en.conf
contienen la configuración para esos módulos. Los módulos se pueden habilitar y deshabilitar utilizando los comandosa2enmod
ya2dismod
.
Registros del servidor
/var/log/apache2/access.log
:De forma predeterminada, cada solicitud a su servidor web se registra en este archivo de registro, a menos que Apache esté configurado para hacer lo contrario./var/log/apache2/error.log
:De manera predeterminada, todos los errores se registran en este archivo. LaLogLevel
directiva de la configuración de Apache especifica cuánto detalle contendrán los registros de errores.
Conclusión
Ahora que tiene instalado su servidor web Apache, tiene muchas opciones para el tipo de contenido que puede servir y las tecnologías que puede utilizar para crear una experiencia más rica.
Si desea crear una pila de aplicaciones más completa, puede leer este artículo sobre cómo configurar una pila LAMP en Ubuntu 18.04 . También puede aprender a obtener e instalar un certificado TLS/SSL gratuito con este tutorial sobre Cómo proteger Apache con Let’s Encrypt en Ubuntu 18.04 .
Deja una respuesta