Cómo Instalar y Configurar Apache en Ubuntu

ApacheLinux

En este tutorial vamos a aprender a instalar Apache in Ubuntu. Si eres un desarrollador LAMP, Apache es un componente imprescindible tanto en tu servidor como en tu entorno de desarrollo.

El único requisito que necesitarás para seguir este tutorial son ciertos conocimientos acerca de la línea de comandos de Linux. Si no los tienes, consulta primero el tutorial de introducción a la línea de comandos de Linux. También necesitarás una cuenta con privilegios de administrador. También es más que recomendable que uses un Firewall como por ejemplo Uncomplicated Firewall.

Qué es Apache

Apache es un servidor cuyo objetivo es el de procesar las peticiones HTTP que llegan al servidor para proporcionar un respuesta. El servidor web actúa como interfaz entre el navegador del usuario y los archivos del servidor. Los archivos que sirve Apache también pueden ser procesados por lenguajes de scripting como PHP, generando así contenido dinámico.

Cuando realizas una petición a un archivo estático, el servidor devolverá dicho archivo, aunque no solamente se realizará una petición al servidor, ya que en el interior de la mayor parte de los archivos HTML también se hace referencia  otros archivos que necesitarán peticiones adicionales, como por ejemplo scripts, fuentes, hojas de estilos CSS o imágenes.

Cómo instalar Apache

Primero veremos cómo instalar Apache y seguidamente realizaremos la configuración iniciar del servidor. Para instalar Apache en Ubuntu debes seguir los pasos que se describen a continuación:

  1. Accede a la terminal de comandos. Puedes abrir la terminal de comandos de Ubuntu de varias formas, ya sea pulsando CTRL+ALT+T o haciendo clic derecho en el escritorio y seleccionando la opción para abrir la terminal.
  2. Antes de nada, actualiza la lista de paquetes de Ubuntu para así asegurarte de que instalas las últimas versiones de los mismos, evitando problemas de seguridad:
    sudo apt-get update
  3. Una vez se termine de actualizar la lista de paquetes, usa el siguiente comando para instalar Apache. Confirma la instalación de Apache en caso de que se muestre un mensaje de confirmación y espera a que finalice su instalación:
    sudo apt-get install apache2
  4. Una vez se instale Apache, abre tu navegador e introduce la  URL http://localhost/ en tu navegador, que debería mostrar la página de inicio de Apache. En caso de que no se muestre nada, prueba a acceder a la IP de tu servidor desde el navegador. Si no sabes cual es la IP de tu servidor, usa el siguiente comando para mostrarla por pantalla:
    hostname -I | awk '{print $1}'
  5. Y con esto ya estaría Apache instalado.

Configuración del Firewall

En caso de que no tengas ningún firewall instalado en tu sistema, podrías instalar Uncomplicated Firewall, también conocido como UFW. Para instalar este firewall puedes consultar el tutorial de instalación de Uncomplicated Firewall. Una vez instalado tendremos que configurarlo para que Apache funcione correctamente. Si no lo has instalado, puedes saltar a la siguiente sección.

Lo que vamos a hacer es configurar UFW para que acepte tráfico en el puerto 80, que es el puerto que usa Apache. Para ello debes seguir estos pasos:

  1. Primero introduce el siguiente comando para mostrar los perfiles de aplicación de UFW:
    sudo ufw show app list

    Debería mostrarse una lista de perfiles de aplicación como la siguiente, en donde también debería estar Apache:

    Available applications:
      Apache
      Apache Full
      Apache Secure
      OpenSSH
  2. Seguidamente, usa el siguiente comando para que Apache acepte peticiones en el puerto 80:
    sudo ufw allow 'Apache'
  3. Una vez hayas ejecutado el comando anterior, usa el comando sudo ufw status para comprobar el estado de UFW. debería mostrarse que Apache está aceptado peticiones en el puerto 80:
    Status: active
    
    To               Action     From
    ---              --------   -------
    Apache           ALLOW      Anywhere
    Apache (v6)      ALLOW      Anywhere (v6)
  4. Y con esto ya habrás terminado de configurar el Firewall.

En caso de que tengas otras aplicaciones o servicios instalados que quieras activar en el Firewall, usa el comando sudo ufw allow 'aplicacion' para habilitarla en el Firewall. Por ejemplo vamos a permitir conexiones SSH para permitir conexiones seguras, que seguramente sea algo que también quieras activar:

sudo ufw allow 'OpenSSH'

Y con esto, el servidor Apache ya debería funcionar correctamente, aunque todavía debemos configurar ciertas opciones.

Cómo iniciar Apache

Cada vez que cambies la configuración de Apache seguramente tendrás que reiniciarlo para aplicar los cambios. Para ello deberías saber cómo iniciar, parar o reiniciar Apache, para lo cual se utiliza el comando systemctl.

  • Para iniciar Apache usa el siguiente comando:
    sudo systemctl start apache2.service
  • Para parar Apache usa el siguiente comando:
    sudo systemctl stop apache2.service
  • Para reiniciar Apache usa el siguiente comando:
    sudo systemctl restart apache2.service
  • Para recargar la configuración de Apache, usa el siguiente comando:
    sudo systemctl reload apache2.service

En el siguiente apartado veremos cómo configurar Apache, por lo que tendrás que utilizar estos comandos cada vez que modifiques los archivos de configuración.

Cómo usar Apache

Una vez tengas Apache instalado, existen una serie de cosas que deberías saber acerca de su funcionamiento.

Para empezar, el directorio por defecto en el que deberías colocar tus archivos, a falta de hosts virtuales, es el directorio /var/www/html. Este es el directorio en donde deberías colgar tu proyecto.

Para probar que todo funciona correctamente, crea un archivo llamado index.html con cualquier editor de texto y sitúalo en el directorio /var/www/html. Edita el archivo y agrega los siguientes contenidos, que no son otra cosa que una plantilla HTML básica:

<html lang="es">
  <head>
      <meta charset="utf-8" />
      <meta http-equiv="x-ua-compatible" content="ie=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>Probando Apache en Ubuntu</title>
  </head>
  <body>
    Si es esto, es que Apache funciona en Ubuntu.
  </body>
</html>

Luego accede a la URL http://localhost/ con tu navegador, en donde deberías poder ver el archivo anterior renderizado.

Cómo configurar Apache

Apache dispone de una serie de archivos de configuración que podrás encontrar en el directorio /etc/apache2. Aquí tienes una lista con los archivos:

  • Si quieres modificar la configuración básica de Apache, deberás modificar el archivo /etc/apache2/apache2.conf, cuyos cambios afectarán a la totalidad de los hosts de tu servidor.
  • Si quieres cambiar la configuración de los puertos que escucha Apache, debes modificar el archivo /etc/apache2/ports.conf.
  • Si has configurado algún host virtual, podrás modificar la configuración individual de cada host mediante los archivos que encontrarás en el directorio /etc/apache2/sites-available.
  • No todos los hosts estarán dispones, por lo que también puedes configurar los hosts activos modificando los archivos de configuración que encontrarás en el directorio /etc/apache2/sites-enabled. Estos archivos tienen prioridad sobre los anteriores.

A continuación vamos a ver cómo modificar algunos parámetros de Apache.

Cambia la carpeta raíz de Apache

Vamos a ver cómo puedes cambiar la carpeta raíz de Apache, que por defecto es el directorio /var/www/html.

Lo que debes hacer es editar el archivo de configuración de Apache /etc/apache2/apache2.conf. Busca la opción DocumentRoot, que estará casi al principio del archivo, e introduce el directorio que prefieras como valor:

DocumentRoot /cualquier/otro/directorio/

Además, también debes modificar el valor del la opción <Directory>:

<Directory /cualquier/otro/directorio/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Require all granted
</Directory>

Finalmente guarda el archivo y reinicia Apache con el comando sudo systemctl reload apache2.

Gestión de módulos de Apache

Cuando usas Apache es muy habitual activar ciertos módulos que seguramente necesites. Para activar un módulo, usa el comando sudo a2enmod nombre_modulo. Si por el contrario quieres desactivar un módulo, usa el comando sudo a2dismod nombre_modulo.

Uno de los módulos más utilizados es el módulo rewrite, que permite establecer rutas personalizadas más allá de la ubicación física de los archivos y los directorios. Para activar este módulo usa el siguiente comando:

sudo a2enmod rewrite

Seguidamente reinicia Apache mediante el comando sudo sudo systemctl restart apache2.

Ubicación de los logs de Apache

Apache creará una serie de logs con los errores que se produzcan en el servidor:

  • En caso de que exista algún error, Apache creará un log de errores en el archivo /var/log/apache2/error.log.
  • Además, también se creará otro log con los errores de acceso en el archivo /var/log/apache2/access.log.

Y con esto damos por terminado el tutorial.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

1 comentario en “Cómo Instalar y Configurar Apache en Ubuntu

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”