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
.