Apache se utiliza a menudo junto con sistemas Linux. Ubuntu es es­pe­cia­l­me­n­te adecuado para instalar el servidor web debido a su fuerte comunidad y su abundante do­cu­me­n­ta­ción. Te ex­pli­ca­mos todos los pasos para instalar y co­n­fi­gu­rar Apache en Ubuntu.

Instalar Apache en Ubuntu: estos son los re­qui­si­tos

Apache es uno de los se­r­vi­do­res web más antiguos y estables. Su po­pu­la­ri­dad se debe a su es­ca­la­bi­li­dad y sencilla co­n­fi­gu­ra­ción. No hay re­qui­si­tos es­pe­cí­fi­cos de pro­ce­sa­dor para instalar Apache en Ubuntu 22.04. La mayoría de los pro­ce­sa­do­res modernos deberían ser su­fi­cie­n­tes para eje­cu­tar­lo. La RAM di­s­po­ni­ble y la capacidad de al­ma­ce­na­mie­n­to del disco duro son los factores decisivos.

Apache consume una cantidad mínima de recursos del sistema y puede co­n­fi­gu­rar­se en varios tipos de sistemas, como or­de­na­do­res de sobremesa, po­r­tá­ti­les, se­r­vi­do­res y máquinas virtuales. Si deseas alojar una página web o una apli­ca­ción potente, es posible que necesites más recursos para conseguir un re­n­di­mie­n­to óptimo. También debes recordar que el uso de módulos puede aumentar los re­qui­si­tos del sistema. Por ejemplo, si quieres integrar un módulo para la mejora del re­n­di­mie­n­to del servidor web Apache, tu sistema ne­ce­si­ta­rá memoria adicional para el al­ma­ce­na­mie­n­to en caché y otras op­ti­mi­za­cio­nes.

Para poder instalar el servidor web Apache, deben cumplirse las si­guie­n­tes co­n­di­cio­nes:

  • Memoria RAM: 4 GB
  • Sistema operativo: Ubuntu, usuario con derechos de acceso sudo
  • Espacio en disco duro: 5 GB
  • Firewall: para tráfico HTTP y para bloquear puertos in­ne­ce­sa­rios
  • Conexión a Internet: para descargar paquetes
Consejo

El hosting de Linux de IONOS soporta una gran cantidad de módulos de Apache que te permiten co­n­fi­gu­rar rápida y efi­ca­z­me­n­te tu propio servidor proxy inverso de Apache. También te ofrece un re­n­di­mie­n­to escalable y flexible, pro­te­c­ción contra ataques de de­ne­ga­ción de servicio di­s­tri­bui­do (DDoS) y las mejores ca­pa­ci­da­des y fu­n­cio­na­li­da­des de PHP.

Cómo instalar Apache en Ubuntu: guía paso a paso

Ubuntu 22.04 utiliza la he­rra­mie­n­ta de gestión de paquetes APT para instalar Apache. En primer lugar, debes ac­tua­li­zar el índice de paquetes de tu sistema Ubuntu para ase­gu­rar­te de que todas las de­pe­n­de­n­cias ne­ce­sa­rias están ac­tua­li­za­das.

Si no se trata de una in­s­ta­la­ción local, inicia sesión en tu servidor Ubuntu.

Paso 1. Actualiza la lista de paquetes

Abre la terminal y realiza una ac­tua­li­za­ción.

$ sudo apt update
bash

Paso 2. Instala el paquete Apache

A co­n­ti­nua­ción, instala el paquete Apache con todas sus de­pe­n­de­n­cias uti­li­za­n­do el comando de APT install.

$ sudo apt install apache2
bash

Paso 3. Cambia la co­n­fi­gu­ra­ción del co­r­ta­fue­gos

Para co­n­fi­gu­rar Apache, es necesario activar el Un­co­m­pli­ca­ted Firewall (UFW) en Ubuntu. Una vez instalado Apache en Ubuntu, Apache configura perfiles de apli­ca­ción en UFW con los que se puede regular el tráfico de datos a los puertos web.

Utiliza el siguiente comando para mostrar la lista de perfiles de apli­ca­ción:

$ sudo ufw app list
bash

El resultado muestra tres perfiles para Apache:

Imagen: Terminal Linux: lista de perfiles de aplicación para Apache
Terminal: lista de perfiles de apli­ca­ción para Apache.
  • Apache: abre el puerto TCP 80 para HTTP (conexión no cifrada)
  • Apache Full: abre los puertos TCP 80 (HTTP, sin cifrar) y 443 (HTTPS, cifrado con TLS/SSL)
  • Apache Secure: solo abre el puerto HTTPS 443 para una conexión cifrada

Como aún no hemos co­n­fi­gu­ra­do SSL, solo podemos abrir el puerto 80.

$ sudo ufw allow 'Apache'
bash

Con el comando “status” puedes comprobar si se ha realizado el ajuste correcto.

$ sudo ufw status
bash

Paso 4. Comprueba el estado de Apache

Utiliza el gestor del sistema systemd para comprobar si el servicio Apache está activo.

$ sudo systemctl status apache2
bash

Paso 5. Ve a la página de inicio de Apache

Introduce tu dirección IP en la línea de dirección del navegador para obtener la página por defecto de Apache. Si no conoces tu dirección IP, puedes verla por ejemplo con “hostname”.

$ hostname -I
bash

También puedes utilizar la he­rra­mie­n­ta icanhazip.

$ curl -4 icanhazip.com
bash

Ahora abre la página estándar de Apache en tu navegador e introduce tu dirección IP en server_ip.

http://server_ip

Esta es una sección de la página en Ubuntu:

Imagen: Navegador web: página de inicio de Apache en Ubuntu
Navegador web: página de inicio de Apache en Ubuntu.

Paso 6. Gestiona el daemon de Apache

Puedes gestionar el daemon o el servicio del servidor web Apache con “systemctl”.

Inicio del servidor web Apache:

$ sudo systemctl start apache2
bash

Detención del servidor web Apache:

$ sudo systemctl stop apache2
bash

Detención y reinicio del servidor web Apache:

$ sudo systemctl restart apache2
bash

Reinicio de Apache y recarga de la co­n­fi­gu­ra­ción:

$ sudo systemctl reload apache2
bash

Al instalar Apache en Ubuntu, el servidor web se iniciará au­to­má­ti­ca­me­n­te en el arranque tras la co­n­fi­gu­ra­ción. También puedes des­ac­ti­var esta función:

$ sudo systemctl disable apache2
bash

Para volver a activar el inicio au­to­má­ti­co de Apache en el arranque, introduce el siguiente comando:

$ sudo systemctl enable apache2
bash

Paso 7. Utiliza hosts virtuales

Por defecto, Apache aloja los do­cu­me­n­tos en /var/www/html. Para utilizar varios dominios en un servidor, puedes co­n­fi­gu­rar hosts virtuales. Dentro de /var/www/html vamos a crear una es­tru­c­tu­ra de di­re­c­to­rios para un dominio in­de­pe­n­die­n­te.

$ sudo mkdir /var/www/your_domain
bash

Sustituye your_domain por tu dominio.

Asigna la propiedad del di­re­c­to­rio con la variable de entorno $USER:

$ sudo chown -R $USER:$USER /var/www/your_domain
bash

También puedes asignar ex­plí­ci­ta­me­n­te los permisos de lectura, escritura y ejecución en modo octal:

$ sudo chmod -R 755 /var/www/your_domain
bash

Paso 8. Crea una página de prueba

Crea un indix.html como página de inicio de tu dominio. Para ello puedes utilizar, por ejemplo, el editor de texto nano.

$ sudo nano /var/www/your_domain/index.html
bash

Elige una fo­r­mu­la­ción e insértala en el archivo HTML:

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Here you can see that your_domain virtual host is successfully working!</h1>
    </body>
</html>
html

Paso 9. Crea un archivo de co­n­fi­gu­ra­ción para el host virtual

Para mostrar la página de ejemplo, Apache debe estar co­n­fi­gu­ra­do ade­cua­da­me­n­te para el dominio. Crea un fichero de co­n­fi­gu­ra­ción propio para tu dominio y deja intacto el fichero de co­n­fi­gu­ra­ción por defecto de Apache.

$ /etc/apache2/sites-available/your_domain.conf
bash

Introduce también una dirección de correo ele­c­tró­ni­co para el ad­mi­ni­s­tra­dor en “Se­r­ve­rA­d­min”:

<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>

Activa el archivo de co­n­fi­gu­ra­ción con “a2ensite”:

$ sudo a2ensite your_domain.conf
bash

Desactiva la antigua página por defecto:

$ sudo a2dissite 000-default.conf
bash

Comprueba si hay errores en la co­n­fi­gu­ra­ción:

$ sudo apache2ctl configtest
bash

Si todo está libre de errores, reinicia Apache:

$ sudo systemctl restart apache2
bash

Abre tu página de inicio:

http://your_domain

Ahora deberías poder ver tu página de prueba:

Imagen: Navegador web: página de ejemplo de un host virtual
Navegador web: página de ejemplo de un host virtual.

Paso 10. Archivos y di­re­c­to­rios im­po­r­ta­n­tes de Apache

Para un fu­n­cio­na­mie­n­to eficiente del servidor web Apache es útil conocer algunos archivos y di­re­c­to­rios de uso frecuente:

  • /var/www/html: Apache envía do­cu­me­n­tos a este di­re­c­to­rio por defecto. Esto puede cambiarse en los archivos de co­n­fi­gu­ra­ción.
  • /etc/apache2: todos los archivos de co­n­fi­gu­ra­ción de Apache se guardan aquí.
  • /etc/apache2/apache2.conf: este es el archivo de co­n­fi­gu­ra­ción principal. Con él puedes cambiar la co­n­fi­gu­ra­ción global.
  • /etc/apache2/ports.conf: los puertos abiertos se enumeran en este archivo. Suelen ser los puertos 80 y/o 443.
  • /etc/apache2/sites-available/: esta carpeta contiene hosts virtuales que han sido co­n­fi­gu­ra­dos. Los archivos de co­n­fi­gu­ra­ción colocados en esta carpeta deben estar vi­n­cu­la­dos al di­re­c­to­rio “site-enabled” para que funcionen.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: estos di­re­c­to­rios almacenan archivos de co­n­fi­gu­ra­ción adi­cio­na­les que no pe­r­te­ne­cen a hosts virtuales. Puedes activar la co­n­fi­gu­ra­ción con “a2enconf” y des­ac­ti­var­la con “a2disconf”.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: los módulos di­s­po­ni­bles y activados se guardan en estos di­re­c­to­rios. Pueden activarse con “a2enmod” y des­ac­ti­var­se con “a2dismod”.
  • /var/log/apache2/access.log: este archivo de registro registra todas las pe­ti­cio­nes al servidor web.
  • /var/log/apache2/error.log: todos los mensajes de error se registran en este archivo. La in­fo­r­ma­ción LogLevel indica la gravedad de los errores.
Ir al menú principal