Práctica 1.8
Implantación de Aplicaciones Web
Curso 2024/2025
1 Implantación de PrestaShop en Amazon Web Services (AWS)
En esta práctica tendremos que realizar la implantación de la aplicación web PrestaShop en Amazon Web Services (AWS).
Amazon Web Services (AWS) es una colección de servicios de computación en la nube pública que en conjunto forman una plataforma de computación en la nube, ofrecidas a través de Internet por Amazon.
Una vez que hayas comprobado que todos los servicios de la pila LAMP están funcionando correctamente, instala y configura la aplicación web propuesta.
1.1 Recursos de PrestaShop que va a necesitar en esta práctica
1.1.1 Requisitos, extensiones de PHP y configuración
En la documentación oficial puedes encontrar cuáles son los requisitos, las extensiones de PHP y la configuración que vas a necesitar para desplegar la aplicación de PrestaShop en un servidor público en Internet.
Referencia:
Antes de realizar la instalación de PrestaShop utilice el script PhpPsInfo para comprobar si nuestro entorno cumple todos los requisitos necesarios para la aplicación.
Tendrá que descargar el script de PhpPsInfo de un
repositorio de GitHub y guardarlo en un directorio que sea accesible
desde el servidor web. Una vez hecho esto, deberá acceder a este script
desde la IP pública del servidor. Para ver el contenido tendrá que
autenticarse con las credenciales que están definidas en el archivo
phppsinfo.php
.
Ejemplo:
Las credenciales (usuario/contraseña) que vienen configuradas por
defecto en el archivo phppsinfo.php
son las siguientes.
<?php
class PhpPsInfo
{protected $login;
protected $password;
const DEFAULT_PASSWORD = 'prestashop';
const DEFAULT_LOGIN = 'prestashop';
...
Al acceder al script desde la IP pública del servidor deberíamos ver una salida similar a las que se muestran a continuación.
Información sobre las versiones de PHP, MySQL y configuración de PHP.
En la imagen anterior se muestran algunos avisos que deben corregirse sobre la configuración de las directivas de php.ini.
memory-limit
. Establece el máximo de memoria en bytes que un script puede consumir.max-input-vars
. Cuantas variables de entrada pueden ser aceptadas en un formulario.post-max-size
. Define el tamaño máximo de datos de POST permitidos.upload-max-filesize
. El tamaño máximo de un fichero subido.
El estado de las extensiones PHP requeridas y recomendadas.
El estado de los permisos de escritura en los directorios y módulos del servidor web Apache.
1.1.2 Código Fuente
El código fuente de PrestaShop puede descargarlo de GitHub. En esta práctica tendrá que utilizar la última versión disponible.
1.1.3 Instalación de PrestaShop desde CLI
Sigue los pasos de la documentación oficial para realizar la instalación de PrestaShop desde la interfaz de línea de comandos (CLI).
1.2 Tareas a realizar
En esta práctica tendremos que realizar la instalación de la aplicación web PrestaShop haciendo uso de los servicios de Amazon Web Services (AWS).
A continuación se describen muy brevemente algunas de las tareas que tendrá que realizar.
Crea una instancia EC2 en AWS que tenga al menos 2GB de memoria RAM.
La Amazon Machine Image (AMI) que vamos a seleccionar para esta práctica será una Community AMI con la última versión de Ubuntu Server.
Cuando esté creando la instancia deberá configurar los puertos que estarán abiertos para poder conectarnos por SSH y para poder acceder por HTTP/HTTPS.
- SSH (TCP)
- HTTP (TCP)
- HTTPS (TCP)
Crea un par de claves (pública y privada) para conectar por SSH con su instancia.
Crea una dirección IP elástica y asígnala a la instancia EC2.
Registra un nombre de dominio en algún proveedor de nombres de dominio gratuito. Por ejemplo, puede hacer uso de No-IP o Freenom.
Configura los registros DNS del proveedor de nombres de dominio para que el nombre de dominio de ha registrado pueda resolver hacia la dirección IP elástica de su instancia EC2 de AWS.
Una vez que haya iniciado su instancia deberá hacer uso de los scripts de bash que diseñó en las prácticas anteriores para automatizar la instalación de la pila LAMP y la instalación de la utilidad web phpMyAdmin.
Instala y configura el cliente ACME Certbot en su instancia EC2 de AWS, para solicitar un certificado SSL/TLS de Let’s Encrypt.
Escriba un script de bash que automatice la instalación y configuración de la aplicación web PrestaShop.
1.3 Entregables
Deberá crear un repositorio en [GitHub][9] con el nombre de la práctica y añadir al profesor como colaborador.
El repositorio debe tener el siguiente contenido:
- Un documento técnico con la descripción de todos los pasos que se han llevado a cabo.
- Los scripts de Bash que se han utilizado para automatizar la instalación y configuración de PrestaShop.
Además del contenido anterior puede ser necesario crear otros archivos de configuración. A continuación se muestra un ejemplo de cómo puede ser la estructura del repositorio:
.
├── README.md
├── conf
│ └── 000-default.conf
└── scripts
├── .env
├── install_lamp.sh
├── setup_letsencrypt_https.sh
└── deploy_prestashop.sh
1.3.1 Documento técnico
El documento técnico README.md
tiene que estar escrito
en Markdown y debe
incluir como mínimo los siguientes contenidos:
- Descripción del proceso de instalación de la instalación de PrestaShop.
1.3.2 Scripts de Bash
El directorio scripts
debe incluir los siguientes
archivos:
.env
: Este archivo contiene todas las variables de configuración que se utilizarán en los scripts de Bash.install_lamp.sh
: Script de Bash con la automatización del proceso de instalación de la pila LAMP.setup_letsencrypt_https.sh
: Script de Bash con la automatización del proceso de solicitar un certificado SSL/TLS de Let’s Encrypt y configurarlo en el servidor web Apache.deploy_prestashop.sh
: Script de Bash con la automatización del proceso de instalación de PrestaShop sobre el directorio raíz/var/www/html
.
2 Referencias
- PrestaShop
- Documentación oficial de PrestaShop
- Amazon Web Services
- phpMyAdmin
- No-IP
- Freenom
- Certbot
- Let’s Encrypt
3 Licencia
Esta
página forma parte del curso
Implantación de Aplicaciones
Web de José Juan Sánchez
Hernández y su contenido se distribuye bajo una
licencia
Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional.