Introducción
El Servidor HTTP Apache es un servidor web de código abierto de la Apache Software Foundation. Es un software que conecta su servidor local con los servidores de sitios web como Firefox o Google Chrome. Esta conexión se utiliza para enviar y recibir archivos y datos.
Es el servidor más popular en todo el mundo. Más del 40% de todos los sitios web en la world wide web funcionan con Apache HTTP. Las razones de su popularidad son su alta capacidad de personalización, su gran capacidad de integración y su soporte de medios confiable. Apache opera sobre una arquitectura basada en módulos. Puede modificar módulos individuales para agregar y eliminar diversas funcionalidades. En este tutorial, le guiaremos sobre cómo instalar el servidor Apache en Ubuntu 18.04.
Antes de la instalación
Antes de comenzar a instalar Apache, debe encargarse de algunos requisitos previos. Para empezar, asegúrese de haber configurado ya un usuario no raíz con privilegios sudo en el servidor local. La otra cosa que necesitará es un cortafuegos. Debe habilitar su cortafuegos básico y bloquear los puertos no esenciales. Antes de comenzar la instalación, inicie sesión con su usuario no raíz con privilegios. Puede instalar fácilmente su servidor siguiendo nuestro tutorial sobre cómo configurar un servidor Ubuntu.
Cómo instalar el servidor web Apache en Ubuntu 18.04
Si ha tenido en cuenta los requisitos previos, puede pasar a la instalación real. Puede instalar y explorar el servidor web Apache en 6 sencillos pasos:
Paso 1: Instalar Apache
Le alegrará saber que Apache ya forma parte de Ubuntu. Esto significa que puede instalar Apache en su servidor utilizando las herramientas típicas de gestión de paquetes. Está disponible como software predeterminado en el repositorio. Primero, deberá actualizar el índice de paquetes local:
|
1 |
sudo apt update |
Este comando hace que los cambios recientes de upstream aparezcan en el índice de paquetes. A continuación, debemos dar la orden para instalar el paquete apache2:
|
1 |
sudo apt install apache2 |
Paso 2: Cambiar la configuración de su cortafuegos
Al encargarse de los requisitos previos, debe haber configurado su cortafuegos UFW. Si siguió las instrucciones, su cortafuegos estará bloqueando su acceso al servidor. Debemos dar acceso al servidor a los puertos web predeterminados antes de operar Apache. Como resultado, se debe cambiar la configuración del cortafuegos.
En el momento de la instalación, Apache se registra con el UFW. El resultado de este registro es la creación de algunos perfiles de aplicación. Además, puede utilizar estos perfiles para habilitar o deshabilitar el acceso del cortafuegos a Apache. Luego, visualice estas aplicaciones ufw con el siguiente comando:
|
1 |
sudo ufw app list |
Verá su perfil de aplicación en una lista como esta:

La lista anterior muestra que se han creado tres perfiles de aplicación, a saber, Apache, Apache Full y Apache Secure. Aquí hay algunos detalles útiles sobre cada uno de estos perfiles:
-
Apache:
El perfil Apache puede abrir únicamente el puerto 80. Este puerto permite el tráfico web normal y no cifrado.
-
Apache Full:
El perfil Apache Full tiene la capacidad de abrir tanto el puerto 80 como el 443. Mientras que el puerto 80 permite el tráfico web normal y no cifrado, el puerto 443 se encarga del tráfico cifrado TLS/SSL.
-
Apache Secure:
Por último, Apache Secure solo abre el puerto 443. Como se mencionó anteriormente, es responsable de permitir la entrada de tráfico web cifrado TLS o SSL.
Al elegir entre estos perfiles, piense en el tráfico que ha configurado. Querrá asegurarse de que pase el tráfico deseado mientras opta por el perfil más restrictivo. La configuración de SSL está fuera de nuestro alcance en este momento. Por lo tanto, nos centraremos en el tráfico que llega a través del puerto 80 por ahora. Esto significa que estamos habilitando el perfil de aplicación ‘Apache’ en este escenario. Puede hacerlo de la siguiente manera:
|
1 |
sudo ufw allow ‘Apache’ |
Para verificar la modificación, escriba lo siguiente:
|
1 |
sudo ufw status |
Este comando mostrará una salida que contiene el tráfico HTTP que actualmente tiene permitido pasar. Verá algo como esto:

El flujo de tráfico muestra que se ha activado el perfil de Apache deseado. Se ha concedido acceso al servidor web a través del cortafuegos.
Paso 3: Comprobar su servidor web
La instalación de Apache se ha completado y se han modificado los ajustes del cortafuegos. Al final de este proceso, Ubuntu 18.04 iniciará Apache automáticamente. A continuación, debe comprobar con el sistema de inicio systemd si el servicio se está ejecutando en un momento dado. Si desea obtener más información sobre los sistemas de inicio, puede consultar nuestro tutorial sobre cómo administrar servicios y unidades de Systemd con Systemctl. Para comprobar si el servicio se está ejecutando, escriba:
|
1 |
sudo systemctl status apache2 |
El resultado será el siguiente:

Debe buscar el estado Active o running del servicio en lo anterior. Esto muestra que el servicio se ha iniciado y se está ejecutando correctamente. Existe otra forma, más preferible, de probar el funcionamiento del servicio. Puede comprobar su estado solicitando una página a Apache. Utilizando la dirección IP de su servidor, puede confirmar si el software se está ejecutando en la página de inicio predeterminada de Apache. Aquí tiene un comando que puede utilizar para obtener la dirección IP de su servidor si aún no la conoce:
|
1 |
hostname -I |
Este comando mostrará un resultado con varias direcciones IP separadas por espacios. Pruebe cada una de ellas individualmente en el navegador. Otra forma de acceder es obtener su dirección IP pública. Puede utilizar un comando como este:
|
1 |
curl -4 icanhazip.com |
Esto le mostrará su dirección IP tal como se ve en otros lugares de la web. A continuación, una vez que tenga su dirección IP, vaya a su navegador web. En la barra de direcciones, escriba y ejecute lo siguiente:
|
1 |
http://your_server_ip |
Esto abrirá la página web predeterminada de Apache en Ubuntu 18.04. Se ve así:

Esta página contiene información básica sobre sus archivos y directorios. Dado que se inició al escribir la dirección, indica que Apache está funcionando correctamente.
Paso 4: Administración básica en Apache
La verificación confirma que Apache se está ejecutando y que su servidor está operativo. Ahora, exploraremos algunos de los comandos básicos que puede utilizar en el servidor para su administración.
La configuración predeterminada de su Apache lo inicia cada vez que el servidor arranca. Tiene la opción de desactivar este ajuste. Escriba:
|
1 |
sudo systemctl disable apache2 |
Para reactivar esta función predeterminada, utilice este comando:
|
1 |
sudo systemctl enable apache2 |
A continuación, escriba lo siguiente si desea detener el servidor manualmente:
|
1 |
sudo systemctl stop apache2 |
Si desea volver a iniciarlo después de haberlo detenido, utilice el comando:
|
1 |
sudo systemctl start apache2 |
Para detener e iniciar el servidor, o básicamente reiniciarlo, escriba:
|
1 |
sudo systemctl restart apache2 |
Cuando detiene el servidor, este tiende a perder todas sus conexiones. Iniciarlo de nuevo significa que vuelve a encontrar y vincular esas conexiones. Si lo desea, también puede recargar Apache sin perder la conexión. Esto es especialmente útil al realizar cambios de configuración. Escriba lo siguiente para recargar sin perder las conexiones:
|
1 |
sudo systemctl reload apache2 |
Paso 5: Configuración de hosts virtuales
Aunque esto no es obligatorio, se recomienda encarecidamente que configure sus hosts virtuales. Los hosts virtuales son pequeños bloques en el servidor que contienen grupos de detalles de configuración. Puede alojar varios dominios en un solo host virtual desde su servidor.
Por defecto, si está utilizando Apache en Ubuntu 18.04, habrá un bloque de servidor activado que servirá documentos en el directorio /var/www/html. Querrá cambiar esta configuración si aloja varios sitios en lugar de uno solo. Sin embargo, hay otra opción posible que funciona aún mejor. Deje el directorio /var/www/html intacto. En su lugar, vaya a /var/www/ para crear una estructura de directorios para los sitios de su dominio deseado. Si hace esto, el directorio /var/www/html se configurará como el directorio predeterminado. En caso de que la solicitud de un cliente no coincida con ninguno de los sitios de su dominio, se servirá desde aquí.
Después de eso, veremos cómo puede crear un nuevo dominio y su directorio asociado. Para este ejemplo, utilizaremos un nombre hipotético, your_domain. Reemplace your_domain dondequiera que aparezca en las instrucciones siguientes con su propio nombre de dominio. Para empezar, veamos cómo puede crear un nuevo directorio para your_domain:
|
1 |
sudo mkdir /var/www/your_domain |
Ahora, tiene que asignar la propiedad del directorio. Puede utilizar la variable de entorno $USER para este propósito:
|
1 |
sudo chown -R $USER:$USER /var/www/your_domain |
Para continuar, los permisos de la raíz web deben ser correctos. Si no ha tocado el valor de unmask en la configuración, sus permisos deberían estar bien. Pero si no está seguro, siempre puede confirmarlo con:
|
1 |
sudo chmod -R 755 /var/www/your_domain |
A continuación, crearemos una página index.html. Puede utilizar nano como nosotros o cualquier otro editor, si tiene alguna preferencia:
|
1 |
nano /var/www/your_domain/index.html |
Añada este HTML de muestra dentro del index, luego guarde y cierre:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Bienvenido a Your_domain!</title> </head> <body> <h1>Éxito! El your_domain virtual host está funcionando!</h1> </body> </html> |
El siguiente paso es crear un archivo de host virtual. Un archivo de host virtual con todas las directivas correctas es necesario para que Apache sirva el contenido de muestra anterior. El archivo de configuración predeterminado se encontrará en: /etc/apache2/sites-available/000-default.conf. En lugar de modificar ese archivo, crearemos uno nuevo en: /etc/apache2/sites-available/your_domain.conf.
|
1 |
sudo nano /etc/apache2/sites-available/your_domain.conf |
De manera similar a antes, añadiremos una muestra para la configuración. Esta vez, sin embargo, la actualizaremos con respecto al nombre de dominio y al nuevo directorio que acabamos de crear. Añada este bloque, luego guarde y cierre:
|
1 2 3 4 5 6 7 8 |
<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> |
Como puede ver arriba, también hemos actualizado nuestro correo electrónico de ServerAdmin. Esta es una dirección a la que el administrador del sitio de your_domain puede acceder. No solo eso, sino que también hemos actualizado el DocumentRoot al nuevo directorio y hemos añadido dos nuevas directivas. Estas directivas incluyen ServerName y ServerAlias. ServerName se utiliza para establecer el dominio base. El dominio base tiene que coincidir para definir el host virtual. ServerAlias, por otro lado, proporciona otros nombres que también deberían coincidir, de manera similar al nombre base. Puede habilitar el archivo utilizando la herramienta a2ensite fácilmente:
|
1 |
sudo a2ensite your_domain.conf |
Para deshabilitar el sitio predeterminado mencionado en 000-default.conf, use este comando:
|
1 |
sudo a2dissite 000-predeterminado.conf |
Ahora que la configuración está lista, puede verificar si hay errores escribiendo:
|
1 |
sudo apache2ctl configtest |
Esto mostrará la siguiente salida si no hay errores de configuración:
|
1 2 3 |
Salida Sintaxis OK |
Para aplicar los cambios, debe reiniciar el servidor Apache como se indicó anteriormente:
|
1 |
sudo systemctl restart apache2 |
¡Listo! Ha configurado su host virtual y establecido su nombre de dominio. Para verificar si Apache está, de hecho, sirviendo su_dominio, vaya a http://your_domain.
Paso 6: Explorar los archivos y directorios
Ha realizado con éxito algunas configuraciones básicas de su servidor Apache. Además, ya sabe cómo puede administrar su servicio Apache. A continuación, puede dedicar algún tiempo a explorar algunos de los directorios y archivos más críticos.
Contenido
- /var/www/html
También hemos hablado de este directorio antes. Contiene la página predeterminada de Apache. Si lo desea, puede cambiar el contenido de esta página. Para hacerlo, tendrá que modificar los archivos de configuración de Apache.
Configuración del servidor
- /etc/apache2
Este es el directorio principal de configuración de Apache. Es decir, este directorio consta de todos los archivos de configuración asociados con Apache.
- /etc/apache2/apache2.conf
Como sugiere la adición al final del directorio, este es el archivo de configuración principal. Este archivo carga varios otros archivos en el directorio y se puede utilizar para realizar modificaciones en la configuración de Apache. Si desea realizar algún cambio en la configuración del servidor Apache, aquí es donde realizará las alteraciones.
- /etc/apache2/ports.conf
Como sugiere el nombre, este archivo pertenece a los puertos que hemos discutido antes. El puerto 80 está habilitado de forma predeterminada y el puerto 443 se activa cuando se introducen módulos que contienen SSL. Este archivo contiene detalles sobre qué puertos están abiertos y habilitados.
- /etc/apache2/sites-available/
Aquí es donde irán sus hosts virtuales. Cualquier configuración de bloque de servidor que deba realizarse se lleva a cabo en este directorio. Para habilitar los bloques de servidor, deben vincularse a otros directorios a través de a2ensite. Apache solo tendrá acceso a los archivos de este directorio si se han habilitado vinculándolos al directorio sites-enabled.
- /etc/apache2/sites-enabled/
Este es el directorio donde se encuentran los hosts virtuales habilitados. Como mencionamos, los hosts se habilitan cuando vincula los archivos en el directorio sites-available a través del comando a2ensite. Los archivos de este directorio son importantes para cuando Apache se inicia, se recarga o compila una configuración.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/
Estos directorios funcionan de manera similar a sites-available y sites-enabled. Para habilitar los archivos en el directorio conf-available, debe usar el comando a2enconf. El comando de deshabilitación es a2disconf. En lugar de almacenar hosts virtuales por sitio, estos directorios constan de detalles de configuración que no son relevantes para el host virtual:
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/
Estos directorios también tienen una relación similar a los dos ejemplos anteriores. Contienen los módulos, tanto los disponibles como los habilitados por el comando a2enmod. Para deshabilitar un módulo, puede usar el comando a2dismod. Los archivos con el sufijo .load tienen fragmentos que pueden cargar un módulo determinado. Los archivos con el sufijo .conf contienen los detalles de configuración relevantes para el módulo dado.
Registros del servidor
- /var/log/apache2/access.log
Este archivo de registro contiene todas las solicitudes realizadas a su servidor. Esto sucede de forma predeterminada. Tiene la opción de configurar Apache para registrar las solicitudes de manera diferente.
- /var/log/apache2/error.log
Este es el registro de errores. Todos los errores que cometa van directamente a este archivo de forma predeterminada. Puede ver el detalle con el que se registran los registros de errores a través de la directiva LogLevel.
Conclusión
Finalmente, siguiendo los pasos anteriores, puedes instalar fácilmente el servidor web Apache en tu Ubuntu 18.04. Una vez que tengas el servidor en tu sistema, puedes explorar las diversas opciones que tienes en la plataforma. Puedes utilizar diferentes tecnologías para producir varios tipos de contenido. De esta manera, puedes cultivar una experiencia única y facilitadora para ti en el servidor.
También puedes aprender cómo proteger tu servidor Apache con Let’s Encrypt siguiendo nuestro tutorial paso a paso. Si quieres aprender cómo instalar Apache en CentOS 7, sigue nuestro tutorial sobre cómo instalar la pila Linux, Apache, MySQL, PHP (LAMP) en CentOS 7.
¡Feliz computación!
Comentarios
Aún no hay comentarios. Sea el primero.