¡Implementa tu Propio Servidor LAMP en Amazon Linux 2023!

En este primer tutorial, aprenderemos a lanzar una instancia EC2 (Elastic Compute Cloud) en AWS, el servicio de computación en la nube de Amazon. EC2 es donde puedes crear servidores virtuales para tus aplicaciones o experimentos. Aunque hay maneras de hacerlo desde la línea de comando (CLI) o con AWS CloudFormation, hoy usaremos la Consola de AWS, que es la interfaz visual, para simplificar.

Paso a Paso para Implementar un Servidor LAMP

Este tutorial es la continuación de Cómo lanzar una instancia Amazon EC2 en AWS

Esta configuración será la base para que en un próximo tutorial podamos instalar aplicaciones web como WordPress y poner nuestro sitio en línea.

Antes de Empezar

Amazon Linux 2023 usa un gestor de paquetes llamado DNF (Dandified YUM), que nos permite instalar, actualizar y gestionar programas en nuestro servidor. DNF es una versión mejorada de YUM (Yellowdog Updater Modified) y funciona en sistemas basados en RPM (Red Hat Package Manager), como Fedora, CentOS y Amazon Linux.

¿Qué es un gestor de paquetes? Es una herramienta que facilita instalar, actualizar y eliminar programas en sistemas Linux. ¡Muy útil para mantener el servidor con las aplicaciones al día!


 

Paso a Paso

 

1. Conéctate a tu Servidor en AWS

Vamos a empezar conectándonos a nuestro servidor en AWS usando SSH (Secure Shell), una herramienta que permite acceder de forma segura. Necesitarás la clave privada (.pem) que descargaste cuando creaste el servidor en el tutorial anterior.

Desde el terminal, navega a la carpeta donde guardaste tu clave privada y usa el siguiente comando para conectarte:

ssh -i "mi_llave.pem" usuario@dns-publico.compute-1.amazonaws.com

Explicación del comando:

  • ssh: Nos conecta al servidor de forma segura.
  • i "mi_llave.pem": Le indica al comando ssh que use nuestra clave privada para autenticar el acceso.
  • usuario: Es el nombre de usuario en el servidor. En Amazon Linux suele ser ec2-user.
  • dns-publico.compute-1.amazonaws.com: Es la dirección del servidor en AWS. Cada instancia de EC2 tiene una dirección DNS pública única para conectarnos desde Internet.

2. Instalación de los Paquetes Necesarios

Primero, vamos a asegurarnos de que el sistema esté actualizado con el siguiente comando:

sudo dnf upgrade -y

Instala Apache y PHP

Apache es el servidor web que mostrará tu sitio, y PHP es el lenguaje de programación que muchas aplicaciones web necesitan. Ejecuta el siguiente comando para instalarlos:

sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel php-gd

Nota: php-gd es una librería de PHP que permite manipular imágenes, y WordPress la necesita para gestionar las imágenes de tu sitio.

Para comprobar que php-gd se instaló correctamente, puedes usar este comando:

php -m | grep gd

Inicia y Configura Apache

  1. Inicia Apache:

    sudo systemctl start httpd
    
  2. Configura Apache para que inicie automáticamente cuando el servidor se reinicie:

    sudo systemctl enable httpd
    
  3. Comprueba que Apache está habilitado:

    sudo systemctl is-enabled httpd
    

Instala y Configura la Base de Datos MariaDB

MariaDB es el sistema de bases de datos que almacenará la información de tus aplicaciones web.

sudo dnf install -y mariadb105-server
  1. Inicia MariaDB:

    sudo systemctl start mariadb
    
  2. Configura MariaDB para que inicie automáticamente:

    sudo systemctl enable mariadb
    
  3. Verifica que MariaDB está habilitado:

    sudo systemctl is-enabled mariadb
    

3. Configura Permisos para Apache y ec2-user

Es importante que nuestro usuario (ec2-user) tenga permisos para trabajar con los archivos del servidor web (Apache). Hazlo así:

  1. Agrega ec2-user al grupo apache:

    sudo usermod -a -G apache ec2-user
    
  2. Cierra la sesión y vuelve a conectarte para que los cambios se apliquen. Luego, verifica con el comando:

    groups
    
  3. Configura permisos en el directorio web para facilitar la instalación de aplicaciones como WordPress:

    sudo chown -R apache:apache /var/www
    sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
    

4. Configura un Virtual Host en Apache

Los Virtual Hosts son configuraciones que permiten que un servidor Apache maneje varios sitios web en la misma máquina.

  1. Crea la carpeta donde estarán los archivos del sitio web. Por ejemplo, para un sitio llamado mi-dominio.com podrías crear la carpeta mi-dominio:

    mkdir /var/www/html/mi-dominio
    

    Crea un archivo de configuración en /etc/httpd/conf.d. Por ejemplo, para un sitio llamado mi-dominio.com que escuchará en el puerto 80:

    sudo nano /etc/httpd/conf.d/mi-dominio.conf
    

    Luego, agrega el siguiente contenido:

    <VirtualHost *:80>
        ServerAdmin micorreo@mi-dominio.com
        DocumentRoot /var/www/html/mi-dominio
        ServerName mi-dominio.com
        ServerAlias www.mi-dominio.com
    
        <Directory "/var/www/html/mi-dominio">
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog "/var/log/mi-dominio-error.log"
        CustomLog "/var/log/mi-dominio-access.log" common
    </VirtualHost>
    

    Explicación:

    • DocumentRoot: Especifica la carpeta donde están los archivos del sitio web.
    • ServerName: Define la URL principal del sitio.
    • ServerAlias: Permite URLs alternativas, como www.mi-dominio.com. En este caso una IP Pública del servidor.
    • Directory: Controla permisos y configuraciones para la carpeta de tu sitio.
  2. Reinicia Apache para que cargue el nuevo virtual host:

    sudo systemctl restart httpd
    

Prueba tu Configuración con un Archivo PHP

Si en la URL de tu navegador ingresas la IP Pública o el DNS Público proporcionado por AWS y ves el mensaje “It Works”, significa que tu configuración está funcionando correctamente.

Por otro lado, si ya has redirigido el DNS de tu dominio hacia la IP Pública y deseas verificar que todo esté funcionando, puedes crear un archivo temporal llamado phpinfo.php en la carpeta de tu sitio utilizando el siguiente comando:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/mi-dominio/phpinfo.php

Visita http://mi-dominio.com/phpinfo.php en tu navegador para ver si carga la información de PHP. Recuerda eliminar este archivo cuando termines, ya que puede revelar información sensible de tu servidor:

sudo rm /var/www/html/mi-dominio/phpinfo.php

¡Listo! Ahora tienes un servidor LAMP funcionando en Amazon Linux 2023. ¡Este es un gran paso en el camino para convertirte en un experto en AWS! ¡Felicidades por tu progreso y sigue adelante!

Tutorial Anterior: Cómo lanzar una instancia Amazon EC2 en AWS

Tutorial Siguiente: Guía Paso a Paso: Compra y Configuración de un Dominio y DNS en AWS

Picture of Victor Guzman

Victor Guzman

Ingeniero en Gestión Informática
Magister en Gestión Empresarial
Fundador de monte-blanco.com

Tutoriales
monte-blanco

Guía Paso a Paso: Compra y Configuración de un Dominio y DNS en AWS

En este primer tutorial, aprenderemos a lanzar una instancia EC2 (Elastic Compute Cloud) en AWS, el servicio de computación en la nube de Amazon. EC2 es donde puedes crear servidores virtuales para tus aplicaciones o experimentos. Aunque hay maneras de hacerlo desde la línea de comando (CLI) o con AWS CloudFormation, hoy usaremos la Consola de AWS, que es la interfaz visual, para simplificar.

Leer articulo
Tutoriales
monte-blanco

¡Implementa tu Propio Servidor LAMP en Amazon Linux 2023!

En este tutorial, vamos a construir un servidor LAMP paso a paso. “LAMP” es un conjunto de software que incluye Linux (el sistema operativo), Apache (el servidor web), MySQL (la base de datos) y PHP (el lenguaje de programación), que trabajan juntos para crear y ejecutar sitios y aplicaciones web. Usaremos una instancia EC2 (Elastic Compute Cloud) en AWS (Amazon Web Services) – ¡la plataforma de nube de Amazon!

Leer articulo
Tutoriales
monte-blanco

Cómo lanzar una instancia Amazon EC2 en AWS

En este primer tutorial, aprenderemos a lanzar una instancia EC2 (Elastic Compute Cloud) en AWS, el servicio de computación en la nube de Amazon. EC2 es donde puedes crear servidores virtuales para tus aplicaciones o experimentos. Aunque hay maneras de hacerlo desde la línea de comando (CLI) o con AWS CloudFormation, hoy usaremos la Consola de AWS, que es la interfaz visual, para simplificar.

Leer articulo
Scroll to Top