Select Page

Una versión previa de este instructional fue escrita por Justin Ellingwood

Introducción

El servidor HTTP Apache es el servidor internet más usado en el mundo. Provee muchas características poderosas, incluyendo módulos de carga dinámica, soporte robusto a medios, así como amplia integración a otros programas comúnmente utilizados.

En esta guía, explicaremos cómo instalar un servidor internet Apache en tu servidor Ubuntu 18.04.

Prerrequisitos

Antes de empezar a realizar estos pasos, se debe tener un usuario common configurado en su servidor, éste debe corresponder a una cuenta con privilegios de sudo, que no sea superusuario (root). Adicionalmente, necesitarás habilitar un cortafuegos básico que bloquee los puertos no esenciales. Puedes aprender cómo configurar una cuenta de usuario common y cómo ajustar el cortafuegos para tu servidor, siguiendo nuestra guía inicial de configuración para Ubuntu 18.04.

Cuando se tenga una cuenta disponible, ingresa con el usuario diferente a superusuario que mencionamos anteriormente y podrás empezar.

Paso 1 — Instalar Apache

Apache se encuentra disponible dentro de los repositorios de tool predeterminados de Ubuntu, haciendo posible l. a. instalación mediante las herramientas convencionales de administración de paquetes.

Empezaremos por actualizar el índice de los paquetes locales. Esto, para garantizar que en él se refleje las cargas más recientes de las nuevas versiones de los paquetes.

A continuación, instala el paquete apache2:

Después de confirmar l. a. instalación, apt instalará Apache al igual que todas las dependencias requeridas.

Paso 2 — Configurar el cortafuegos

Antes de probar el Apache, es necesario modificar los ajustes del cortafuegos de tal manera que se garantice el acceso externo a los puertos internet por defecto. Asumiendo que seguiste las instrucciones de los prerrequisitos, tendrás un cortafuegos UFW configurado para restringir el acceso a tu servidor.

Durante l. a. instalación, Apache por sí mismo, se registra en el UFW para proveer los perfiles que permitan habilitar o deshabilitar su acceso a través del cortafuego.

Lista los perfiles de aplicación dentro ufw digitando:

Se debería desplegar una lista de perfiles de aplicación:

Salida

To be had packages: Apache Apache Complete Apache Protected OpenSSH

Como te has podido dar cuenta, existen tres perfiles disponibles para Apache:

  • Apache: este perfil habilita únicamente el puerto 80 (commonplace, tráfico internet sin encriptar).
  • Apache Complete: este perfil habilita dos puertos: puerto 80 (commonplace, tráfico internet sin encriptar) y el puerto 443 (tráfico encriptado mediante TLS/SSL).
  • Apache Protected: este perfil habilita únicamente el puerto 443 (tráfico encriptado mediante TLS/SSL).

Se recomienda que siempre habilites el perfil con más restricciones dependiendo del tráfico requerido y cómo se ha configurado tu máquina. Como aún no hemos configurado el SSL para nuestro servidor en esta guía, solo permitiremos el tráfico a través del puerto 80:

Se puede verificar el cambio digitando:

Se te debería desplegar que el tráfico HTTP se encuentra permitido:

Salida

Standing: lively To Motion From -- ------ ---- OpenSSH ALLOW Any place Apache ALLOW Any place OpenSSH (v6) ALLOW Any place (v6) Apache (v6) ALLOW Any place (v6)

Como puedes observar, el perfil ha sido activado, y el acceso al servidor internet es permitido.

Paso 3 — Verificar el servidor internet

Al finalizar el proceso de instalación, Ubuntu 18.04 inicia Apache. Entonces, el servidor internet debería encontrarse activo y en ejecución.

Verifica con el sistema de base systemd que el servicio se está ejecutando al digitar:

  • sudo systemctl standing apache2

Salida

● apache2.provider - The Apache HTTP Server Loaded: loaded (/lib/systemd/gadget/apache2.provider; enabled; dealer preset: enabled) Drop-In: /lib/systemd/gadget/apache2.provider.d └─apache2-systemd.conf Lively: lively (operating) since Tue 2018-04-24 20:14:39 UTC; 9min in the past Major PID: 2583 (apache2) Duties: 55 (restrict: 1153) CGroup: /gadget.slice/apache2.provider ├─2583 /usr/sbin/apache2 -k get started ├─585 /usr/sbin/apache2 -k get started └─2586 /usr/sbin/apache2 -k get started

Como se puede ver en esta salida, el servicio se ha iniciado exitosamente. Sin embargo, el mejor check para realizar esta comprobación es el de solicitar una página al servidor Apache.

Puedes acceder a l. a. página por defecto de Apache para confirmar que éste se encuentra en correcta ejecución a través de tu dirección IP. Si no conoces l. a. dirección IP de tu servidor, puedes obtenerla de diferentes maneras desde l. a. línea de comandos.

Prueba digitando los siguiente en l. a. línea de comandos de tu servidor:

Se te retornará algunas direcciones separadas por espacios. Pruébalas todas en tu navegador internet para asegurar su funcionamiento.

Alternativamente, puedes digitar el siguiente comando, el cual te debería retornar l. a. dirección IP pública de l. a. manera que es percibida desde un lugar externo en web:

Cuando tengas l. a. dirección IP de tu servidor, ingrésala en l. a. barra de direcciones de tu navegador:

http://ip_de_tu_servidor

A continuación, deberías ver l. a. página internet predeterminada de Ubuntu 18.04:

Página por defecto de Apache

El despliegue de esta página implica que Apache se encuentra funcionando correctamente. Además, también incluye información básica sobre l. a. localización de archivos y directorios relevantes de Apache.

Paso 4 — Administrando el proceso de Apache

Ahora que ya cuentas con un servidor internet activo y en ejecución, podemos familiarizarnos con algunos comandos básicos de administración.

Para detener tu servidor internet, digita:

  • sudo systemctl forestall apache2

Para iniciar tu servidor internet, digita:

  • sudo systemctl get started apache2

Para detener y reiniciar el servicio en un solo paso, puedes ingresar:

  • sudo systemctl restart apache2

Si únicamente estás realizando cambios en l. a. configuración, puedes recargar Apache sin necesidad de perder las conexiones que pudieran estar activas. Para ello, america el comando:

  • sudo systemctl reload apache2

Por defecto, Apache se configura para iniciarse automáticamente cuando el servidor arranca. Si no se quiere esto, se puede deshabilitar este comportamiento, ingresando:

  • sudo systemctl disable apache2

Para rehabilitar el servicio durante el arranque, digita:

  • sudo systemctl allow apache2

Después de ingresar este comando, Apache debería iniciarse automáticamente durante el arranque del servidor.

Paso 5 — Configurar sitios virtuales (Digital Hosts) (Recomendado)

Al usar el servidor internet Apache, puedes usar sitios virtuales (similares a los bloques de servidor -server blocks- en Nginx), permitiendo encapsular detalles de configuración, así como alojar más de un dominio en un solo servidor. Configuraremos un dominio llamado ejemplo.com, pero puedes reemplazarlo con tu propio nombre de dominio. Para aprender más acerca de configurar un nombre de dominio con DigitalOcean, puedes usar nuestra introducción al DNS de DigitalOcean.

Apache en Ubuntu 18.04 tiene un bloque de servidor predeterminado y activo para servir los documentos del directorio /var/www/html. Si bien, esto funciona adecuadamente como configuración para un sitio unitario, puede ser muy difícil de mantener y controlar cuando se tienen múltiples sitios. En cambio de modificar /var/www/html, creamos una estructura de directorios dentro de /var/www para nuestro sitio ejemplo.com, dejando así, /var/www/html como se encuentra por defecto, y sirviendo de directorio predeterminado en caso que l. a. solicitud de un cliente no concuerde con los otros sitios.

Crea el directorio para ejemplo.com usando l. a. opción -p de tal manera que se creen los directorios padres necesarios:

  • sudo mkdir -p /var/www/ejemplo.com/html

A continuación, asigna el usuario propietario del directorio, mediante l. a. variable de entorno $USER:

  • sudo chown -R $USER:$USER /var/www/ejemplo.com/html

Los permisos de tus directorios raíz para l. a. internet no se modifican a menos que cambies el valor de unmask. Sin embargo puedes asegurarlo mediante el comando:

  • sudo chmod -R 755 /var/www/ejemplo.com

Después, crea una página de ejemplo index.html usando nano o el editor de tu preferencia:

  • nano /var/www/ejemplo.com/html/index.html

Dentro del archivo, adiciona el siguiente código de ejemplo HTML:

/var/www/ejemplo.com/html/index.html


    
        ¡Bienvenido a <span class="highlight">Ejemplo.com</span>!

¡El proceso ha sido exitoso! ¡El bloque de servidor ejemplo.com se encuentra en funcionamiento!

Guarda y cierra el archivo cuando termines.

Para que el Apache sirva este contenido, es necesario crear un archivo de alojamiento digital con las directivas apropiadas. En cambio de modificar directamente l. a. configuración predeterminada que se encuentra en /and so on/apache2/sites-available/000-default.conf, creemos una nueva en /and so on/apache2/sites-available/ejemplo.com.conf:

  • sudo nano /and so on/apache2/sites-available/ejemplo.com.conf

Pega el siguiente bloque de configuración, que es muy an identical al predeterminado, pero contiene l. a. información actualizada de directorios y de dominio:

/and so on/apache2/sites-available/ejemplo.com.conf


    ServerAdmin admin@ejemplo.com
    ServerName ejemplo.com
    ServerAlias www.ejemplo.com
    DocumentRoot /var/www/ejemplo.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/get admission to.log mixed

Observa que hemos actualizado el campo DocumentRoot a nuestro nuevo directorio y ServerAdmin a una dirección de correo electrónico que el administrador del sitio instance.com pueda acceder. También, hemos adicionado dos directivas: ServerName, que establece el dominio base que debería ser concordante con l. a. definición del sitio digital, y ServerAlias, que outline otros nombres que serán atendidos de l. a. misma forma como si fuesen el dominio base.

Guarda y cierra el archivo cuando termines.

Habilitemos el archivo usando l. a. herramienta a2ensite:

  • sudo a2ensite ejemplo.com.conf

Deshabilita el sitio por defecto definido en 000-default.conf:

  • sudo a2dissite 000-default.conf

A continuación, probemos l. a. configuración en busca de errores:

  • sudo apache2ctl configtest

Deberías ver l. a. siguiente salida:

Salida

Syntax OK

Reinicia Apache para que los cambios sean implementados:

  • sudo systemctl restart apache2

Apache ya debería estar sirviendo tu nombre de dominio. Puedes hacer un check navegando en http://ejemplo.com, donde deberías ver algo an identical a:

Ejemplo de alojamiento virtual en Apache

Paso 6 — Familiarizarse con los archivos y directorios importantes de Apache

Ahora que ya sabes cómo administrar el servicio explicit de Apache, tómate unos minutos para familiarizarte con algunos archivos y directorios importantes.

Contenido

  • /var/www/html: es donde se encuentra el contenido actual internet. Por defecto, consiste únicamente de l. a. página predeterminada de Apache que viste antes, y se persiste en el directorio /var/www/html. Esto puede ser modificado en los archivos de configuración de Apache.

Configuración del servidor

  • /and so on/apache2: es el directorio de configuración de Apache. Todos los archivos de configuración de Apache se localizan en éste.
  • /and so on/apache2/apache2.conf: es el archivo major de configuración de Apache. Al modificarlo se realizan cambios en l. a. configuración world de Apache. Este archivo es el responsable de l. a. carga de una gran variedad de otros archivos en el directorio de configuración.
  • /and so on/apache2/ports.conf: este archivo especifica los puertos a los cuales Apache escuchará. Por defecto, Apache escucha el puerto 80, aunque adicionalmente, escucha el puerto 443 cuando un módulo con capacidad SSL es habilitado.
  • /and so on/apache2/sites-available/: es el directorio donde se alojan los diferentes sitios virtuales que podrían habilitarse. Apache no utilizará los archivos de configuración que se encuentren en este directorio a menos que se encuentren enlazados con el directorio sites-enabled. Típicamente, l. a. configuración de todos los bloques de servidores se hace en este directorio, para después ser habilitados mediante su enlace con los directorios usando el comando a2ensite.
  • /and so on/apache2/sites-enabled/: es el directorio donde se alojan los diferentes sitios virtuales que se encuentren habilitados. Típicamente, éstos son creados usando a2ensite para enlazar los archivos de configuración que se encuentran en el directorio sites-available. Apache lee los archivos de configuración y los enlaces que se encuentren en este directorio en el momento de su arranque o reinicio, para después compilar una configuración completa.
  • /and so on/apache2/conf-available/, /and so on/apache2/conf-enabled/: estos directorios presentan l. a. misma relación que se da entre los directorios sites-available y sites-enabled, solo que éstos son usados para guardar los fragmentos de configuración que no pertenecen a un sitio digital. Los archivos dentro del directorio conf-available pueden ser habilitados con el comando a2enconf y deshabilitados con el comando a2disconf.
  • /and so on/apache2/mods-available/, /and so on/apache2/mods-enabled/: estos directorios contienen tanto los módulos disponibles como los habilitados, respectivamente. Los archivos terminados en .load contienen fragmentos que permiten cargar módulos específicos, mientras que los archivos terminados en .conf contienen l. a. configuración de dichos módulos. Los módulos pueden ser habilitados y deshabilitados usando los comandos: a2enmod y a2dismod.

Archivos de registro del servidor

  • /var/log/apache2/get admission to.log: por defecto, todo solicitud hecha a tu servidor internet es registrada en este archivo, a menos que se configure Apache para hacerlo de una manera distinta.
  • /var/log/apache2/error.log: por defecto, los errores se registran en este archivo. L. a. directiva LogLevel, dentro de l. a. configuración de Apache, especifica el nivel de detalle con el cual se registra el contenido del error.

Conclusión

Para este momento, has instalado el servidor, y por lo tanto tienes un número importante de opciones de contenido y de tecnologías que te permitirán crear una experiencia más rica en tus sitios.

Si quisieras instalar una pila que soporte de manera más completa tus aplicaciones, puedes revisar el artículo: cómo instalar en Ubuntu 18.04 la pila LAMP.