Introducción
El Servidor HTTP Apache es el servidor web más utilizado en el mundo. Proporciona muchas características potentes que incluyen módulos cargables dinámicamente, soporte de medios robusto y una amplia integración con otro software popular.
en esta guía, explicaremos cómo instalar un servidor Web Apache en su servidor Ubuntu 20.04.
prerrequisitos
antes de comenzar esta guía, debe tener un usuario normal que no sea root con privilegios sudo configurados en su servidor., Además, deberá habilitar un firewall básico para bloquear puertos no esenciales. Puede aprender cómo configurar una cuenta de usuario normal y configurar un firewall para su servidor siguiendo nuestra Guía de configuración inicial del servidor para Ubuntu 20.04.
Cuando tengas una cuenta disponible, inicia 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 convencionales de administración de paquetes.,
comencemos actualizando el índice de paquetes local para reflejar los últimos cambios en el desarrollo:
- sudo apt update
luego, instale el apache2
paquete:
- sudo apt install apache2
después de confirmar la instalación, apt
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., Suponiendo que haya seguido las instrucciones de los requisitos previos, debe tener un firewall UFW configurado para restringir el acceso a su servidor.
durante la instalación, Apache se registra con UFW para proporcionar algunos perfiles de aplicación que se pueden usar para habilitar o deshabilitar el acceso a Apache a través del firewall.,>
recibirá una lista de los perfiles de la aplicación:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
como se indica en la salida, hay tres perfiles disponibles para Apache:
- Apache: este perfil abre solo 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 puerto 443 (tráfico li>
- Apache secure: este perfil abre solo el puerto 443 (tráfico cifrado TLS/SSL)
se recomienda habilitar el perfil más restrictivo que aún permita el tráfico que ha configurado., Dado que aún no hemos configurado SSL para nuestro servidor en esta guía, solo necesitaremos permitir el tráfico en el puerto 80:
- sudo ufw allow 'Apache'
puede verificar el cambio escribiendo:
- sudo ufw status
la salida proporcionará una lista de tráfico HTTP permitido:
como indica la salida, el perfil se ha activado para permitir el acceso al servidor web Apache.
Paso 3-comprobando su servidor web
al final del proceso de instalación, Ubuntu 20.04 inicia Apache. El servidor web ya debería estar en funcionamiento.,
compruebe con el sistema de iniciosystemd
para asegurarse de que el servicio se está ejecutando escribiendo:
- sudo systemctl status apache2
como lo confirma esta salida, el servicio se ha iniciado correctamente. Sin embargo, la mejor manera de probar esto es solicitar una página de Apache.
Puede acceder a la página de destino 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 varias maneras diferentes desde la línea de comandos.,
intente escribir esto en el símbolo del sistema de su servidor:
- hostname -I
obtendrá algunas direcciones separadas por espacios. Puede probar cada uno en su navegador web para determinar si funcionan.,
otra opción es utilizar la herramienta Icanhazip, que debe darle su dirección IP pública como leída desde otra ubicación en internet:
- curl -4 icanhazip.com
Cuando tenga la dirección IP de su servidor, introdúzcala en la barra de direcciones de su navegador:
You should see the default Ubuntu 20.04 Apache web page:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s go over some basic management commands using systemctl
.
To stop your web server, type:
- sudo systemctl stop apache2
para iniciar el servidor web cuando se detenga, escriba:
- sudo systemctl start apache2
para detener y luego iniciar el servicio de nuevo, escriba:
- sudo systemctl restart apache2
si simplemente está haciendo cambios de configuración, Apache a menudo puede recargar sin soltar conexiones., Para hacer esto, use este comando:
- sudo systemctl reload apache2
por defecto, Apache está configurado para iniciarse automáticamente cuando el servidor arranca. Si esto no es lo que desea, deshabilite este comportamiento escribiendo:
- sudo systemctl disable apache2
para volver a habilitar el servicio para que se inicie en el arranque, escriba:
- sudo systemctl enable apache2
Apache ahora debe iniciarse automáticamente cuando el servidor arranca de nuevo.,
Paso 5-Configuración de Hosts virtuales (recomendado)
al usar el servidor Web Apache, puede usar hosts virtuales (similares a los bloques de servidor en Nginx) para encapsular detalles de configuración y alojar más de un dominio desde un solo servidor. Configuraremos un dominio llamado your_domain, pero debes reemplazarlo con tu propio nombre de dominio. Si está configurando un nombre de dominio con DigitalOcean, consulte nuestra documentación de redes.
Apache en Ubuntu 20.,04 tiene un bloque de servidor habilitado de forma predeterminada que está configurado para servir documentos desde el directorio /var/www/html
. Si bien esto funciona bien para un solo sitio, puede volverse difícil de manejar si está alojando varios sitios. En lugar de modificar /var/www/html
, vamos a crear una estructura de directorios dentro de /var/www
para un sitio your_domain, dejando /var/www/html
en su lugar como el directorio predeterminado para ser servido 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 variable de entorno $USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
los permisos de sus raíces web deben ser correctos se modificó el valor de umask, que establece los permisos de archivo predeterminados., Para asegurarse de que sus permisos son correctos y permitir que el propietario lea, escriba y ejecute los archivos mientras otorga solo Permisos de lectura y ejecución a grupos y otros, puede ingresar el siguiente comando:
- sudo chmod -R 755 /var/www/your_domain
a continuación, cree una página de muestra index.html
usando nano
o su editor favorito:
- sudo nano /var/www/your_domain/index.html
dentro, agregue el siguiente HTML de ejemplo:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body></html>
Guarde y cierre el archivo cuando haya terminado.,
para que Apache sirva 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 en /etc/apache2/sites-available/000-default.conf
directamente, hagamos uno nuevo en /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
pegue en el siguiente bloque de configuración, que es similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio:
observe que hemos actualizado DocumentRoot
a nuestro nuevo directorio y ServerAdmin
a un correo electrónico al que el administrador del sitio your_domain puede acceder. También hemos añadido 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.,
vamos a habilitar el archivo con la herramienta a2ensite
:
- sudo a2ensite your_domain.conf
deshabilite el sitio predeterminado definido en 000-default.conf
:
- sudo a2dissite 000-default.conf
a continuación, probemos los errores de configuración:
- sudo apache2ctl configtest
debe recibir la siguiente salida:
OutputSyntax OK
Reinicie Apache para implementar sus cambios:
- sudo systemctl restart apache2
Apache ahora debe servir su nombre de dominio., Puede probar esto navegando a , donde debería ver algo como esto:
Paso 6 – familiarizarse con los archivos y directorios importantes de Apache
ahora que sabe cómo administrar el servicio Apache en sí, debería tomarse unos minutos para familiarizarse con algunos directorios y archivos importantes.,
Content
-
/var/www/html
: el contenido Web real, que por defecto solo consiste en la página predeterminada de Apache que vio anteriormente, se sirve desde el directorio/var/www/html
. Esto se puede cambiar alterando 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. Esto se puede modificar 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á. Por defecto, Apache escucha en el puerto 80 y adicionalmente escucha en el puerto 443 cuando un módulo que proporciona capacidades SSL está habilitado. -
/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 al directoriosites-enabled
., Normalmente, toda la configuración del bloque del servidor se realiza en este directorio, y luego se habilita Enlazando al otro directorio con el comandoa2ensite
. -
/etc/apache2/sites-enabled/
: el directorio donde se almacenan los hosts virtuales habilitados por sitio. Normalmente, estos se crean Enlazando a archivos de configuración que se encuentran en el directoriosites-available
con ela2ensite
. Apache lee los archivos de configuración y enlaces que se encuentran en este directorio cuando se inicia o 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 en el directorioconf-available
se pueden habilitar con el comandoa2enconf
y deshabilitar con el comandoa2disconf
. -
/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Estos directorios contienen los módulos activos y disponibles, 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 usando el comandoa2enmod
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 forma predeterminada, todos los errores se registran en este archivo., La directivaLogLevel
en la configuración de Apache especifica cuánto detalle contendrán los registros de errores.
conclusión
ahora que tiene su servidor web instalado, tiene muchas opciones para el tipo de contenido que puede servir y las tecnologías que puede usar para crear una experiencia más rica.
si desea construir una pila de aplicaciones más completa, puede leer este artículo sobre cómo configurar una pila LAMP en Ubuntu 20.04