📜 Descripción

El Spring 1 tiene como objetivo la configuración de un servidor web funcional en una máquina virtual Ubuntu utilizando Apache2.

Esta fase permitirá:

  • Implementar un servidor web con Apache2.
  • Habilitar la carga de imágenes mediante dos métodos:
    • Almacenamiento en una carpeta del servidor.
    • Almacenamiento en una base de datos MySQL.
  • Garantizar el despliegue inicial de la aplicación web Extagram.

Con esta configuración, se establecerán las bases para futuras mejoras y optimizaciones del sistema.

🔧 2. Requisitos

Software necesario:

  • Ubuntu Server
  • Apache2
  • PHP & PHP-FPM
  • MySQL Server

⚙️ Instalación y Configuración

📌 Instalación de Apache2 y PHP

Se instala el servidor web Apache2 junto con PHP y sus módulos requeridos.

sudo apt update && sudo apt install apache2 php libapache2-mod-php php-mysql php-fpm -y

🛢️ Instalación y configuración de MySQL

Se instala MySQL Server y se crea la base de datos para almacenar las imágenes.

sudo apt install mysql-server -y
sudo mysql_secure_installation

🗄️ Creación de la base de datos

Se define la estructura de la base de datos para almacenar las imágenes.


CREATE DATABASE extagram_db;
CREATE USER 'extagram_admin'@'%' IDENTIFIED BY 'pass123';
GRANT ALL PRIVILEGES ON extagram_db.* TO 'extagram_admin'@'%';
FLUSH PRIVILEGES;
CREATE TABLE extagram_db.posts(post TEXT, photourl TEXT);

⚡ Configuración de Apache2

Se habilitan los módulos necesarios para la ejecución de PHP-FPM en Apache.

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php*-fpm
sudo systemctl restart apache2

🔑 Configuración de permisos

Se asignan los permisos adecuados para el directorio web.

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/

📂 Implementación de Extagram

📤 upload.php - Carga de imágenes

Este script permite a los usuarios subir imágenes a la plataforma. Las imágenes pueden guardarse en una carpeta en el servidor o directamente en la base de datos MySQL.

🖼️ extagram.php - Visualización de imágenes

Este archivo se encarga de recuperar y mostrar las imágenes almacenadas, ya sea desde la base de datos o desde la carpeta del servidor.

✅ Pruebas y Verificación

1️⃣ Iniciar Apache y MySQL

Antes de probar la aplicación, es necesario asegurarse de que los servicios estén activos.

sudo systemctl start apache2
sudo systemctl start mysql

2️⃣ Acceder a la aplicación

Ingresar a la URL del servidor en un navegador para probar la carga y visualización de imágenes:

📌 http://localhost/extagram.php

🎯 Conclusión

Este **Spring 1** ha permitido establecer la infraestructura básica de **Extagram**, asegurando un servidor web funcional con capacidad para almacenar y mostrar imágenes. Esta implementación servirá como base para futuras mejoras y optimizaciones.