Documentación de Instalación y Configuración del Servidor Web (MariaDB + NGINX + PHP8.2-FPM)

1. Instalación de paquetes necesarios

apt update && apt install nginx git mariadb-server mariadb-client php8.2-fpm curl composer nodejs npm php-mysql
  • nginx: Servidor web.
  • git: Control de versiones.
  • mariadb-server/client: Base de datos.
  • php8.2-fpm: PHP FastCGI Process Manager.
  • php-mysql: Extensión de PHP para MySQL/MariaDB.
  • curl, composer, nodejs, npm: Herramientas necesarias para Laravel y frontend.

2. Configuración de PHP-FPM

mkdir /run/php
chown www-data:www-data /run/php/
chmod 755 /run/php/
systemctl status php8.2-fpm
systemctl restart php8.2-fpm

3. Configuración de MariaDB

mkdir -p /etc/systemd/system/mariadb.service.d/
nano /etc/systemd/system/mariadb.service.d/override.conf

Contenido del archivo:

[Service]
PrivateTmp=false
ProtectHome=false
ProtectSystem=false
PrivateDevices=false
LockPersonality=false
ProtectKernelModules=false
ProtectKernelTunables=false
ProtectControlGroups=false
RestrictNamespaces=false
NoNewPrivileges=false
systemctl daemon-reload
systemctl restart mariadb
systemctl status mariadb

4. Clonación del Proyecto Laravel (Netflox)

cd /var/www/html/
mkdir Netflox
cd Netflox/
git clone https://gitlab.inf.edt.cat/a221207jd/Netflox.git .

5. Instalación de dependencias del proyecto

Laravel Backend:

composer install

Laravel Frontend:

npm install
npm run build

6. Configuración de permisos

chown -R www-data:www-data /var/www/html/Netflox/
chmod -R 775 /var/www/html/Netflox/

7. Configuración de NGINX para Laravel

nano /etc/nginx/sites-available/laravel.conf
ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t
systemctl restart nginx

8. Migraciones y Seeds de Base de Datos

php artisan migrate --seed

Para reiniciar migraciones:

php artisan migrate:fresh --seed

9. Configuración de SSL (Autogenerado)

openssl req -x509 -nodes -days 100 -newkey rsa:2048 -keyout /etc/ssl/private/private.key -out /etc/ssl/certs/public.crt
nano /etc/nginx/sites-available/laravel.conf
systemctl restart nginx

10. Tareas útiles de administración

  • Pruebas unitarias Laravel: bash php artisan test
  • Limpiar cachés de Laravel: bash php artisan config:clear php artisan cache:clear composer dump-autoload
  • Monitorización: bash htop df -h nmap -p 3306 localhost

✅ Resumen del Entorno Final

  • NGINX como servidor web reverse proxy.
  • PHP 8.2-FPM ejecutando Laravel.
  • MariaDB gestionando la base de datos.
  • SSL autofirmado configurado.
  • Proyecto Laravel Netflox desplegado en /var/www/html/Netflox.