netgescon-master/scripts/README.md

6.3 KiB

README - Script di Migrazione NetGescon su Linux

Panoramica

Questa directory contiene script automatizzati per facilitare la migrazione completa di NetGescon da ambiente Windows a Linux Ubuntu Server 22.04 LTS.

File Inclusi

📋 Documentazione

  • GUIDA-MIGRAZIONE-LINUX-COMPLETA.md - Guida completa step-by-step
  • README.md - Questo file

🔧 Script di Setup

  • setup-netgescon.sh - Installazione ambiente Linux completo
  • setup-laravel.sh - Configurazione progetto Laravel
  • nginx-config.sh - Configurazione Nginx automatica

💾 Script di Manutenzione

  • backup-netgescon.sh - Backup completo automatico
  • monitor-netgescon.sh - Monitoraggio sistema e salute

Utilizzo Rapido

1. Preparazione VM Linux

# Crea VM Ubuntu Server 22.04 LTS con:
# - RAM: 4-8 GB
# - Storage: 80 GB
# - Network: Bridge/NAT con port forwarding

2. Setup Ambiente (su Linux)

# Copia setup-netgescon.sh sulla VM Linux
chmod +x setup-netgescon.sh
./setup-netgescon.sh

3. Configurazione Database

sudo mysql_secure_installation
sudo mysql -u root -p

# Esegui i comandi SQL mostrati dallo script

4. Trasferimento Progetto

# Da Windows: copia netgescon-laravel/ in /var/www/netgescon/
# Metodi: SCP, SFTP, WinSCP, FileZilla, USB, etc.

# Su Linux: setup Laravel
chmod +x setup-laravel.sh
./setup-laravel.sh

5. Configurazione Web Server

chmod +x nginx-config.sh
./nginx-config.sh

6. Test Finale

# Test applicazione
php artisan serve --host=0.0.0.0 --port=8000

# Accedi via browser:
# http://IP_VM:8000

Script Dettagliati

setup-netgescon.sh

Cosa fa:

  • Aggiorna sistema Ubuntu
  • Installa PHP 8.2 + estensioni Laravel
  • Installa Composer, Node.js, MySQL, Nginx
  • Configura firewall UFW
  • Crea directory progetto con permessi corretti

Requisiti:

  • Ubuntu Server 22.04 LTS
  • Connessione internet
  • Utente con privilegi sudo

Tempo: ~10-15 minuti

setup-laravel.sh

Cosa fa:

  • Configura permessi Laravel
  • Installa dipendenze PHP (composer install)
  • Installa dipendenze frontend (npm install)
  • Configura file .env automaticamente
  • Genera APP_KEY
  • Esegue migrazioni e seeder
  • Ottimizza cache Laravel

Requisiti:

  • Progetto Laravel in /var/www/netgescon/netgescon-laravel/
  • Database MySQL configurato
  • Dipendenze di sistema installate

Tempo: ~5-10 minuti

nginx-config.sh

Cosa fa:

  • Crea virtual host Nginx ottimizzato per Laravel
  • Configura PHP-FPM integration
  • Abilita gzip compression
  • Aggiunge security headers
  • Configura asset caching
  • Testa e riavvia servizi

Tempo: ~2-3 minuti

backup-netgescon.sh

Cosa fa:

  • Backup database MySQL
  • Backup file applicazione (tar.gz)
  • Backup configurazioni sistema
  • Crea manifest dettagliato
  • Rimuove backup vecchi (>7 giorni)
  • Log operazioni

Configurazione crontab automatica:

sudo crontab -e
# Aggiungi: 0 2 * * * /path/to/backup-netgescon.sh

monitor-netgescon.sh

Cosa fa:

  • Verifica stato servizi (Nginx, PHP-FPM, MySQL)
  • Controlla uso risorse (CPU, RAM, Disk)
  • Testa connessione database
  • Verifica risposta HTTP
  • Analizza log errori
  • Controlla backup recenti
  • Genera report dettagliato

Uso raccomandato:

# Controllo manuale
./monitor-netgescon.sh

# Controllo automatico ogni ora
crontab -e
# Aggiungi: 0 * * * * /path/to/monitor-netgescon.sh >> /var/log/netgescon/monitor.log

Troubleshooting Comune

Errore: Permission Denied

sudo chown -R $USER:www-data /var/www/netgescon
sudo chmod -R 755 /var/www/netgescon
sudo chmod -R 775 /var/www/netgescon/netgescon-laravel/storage

Errore: Database Connection Failed

# Verifica MySQL
sudo systemctl status mysql

# Test connessione
mysql -u netgescon_user -p netgescon

# Verifica .env
cat /var/www/netgescon/netgescon-laravel/.env | grep DB_

Errore: Nginx 502 Bad Gateway

# Verifica PHP-FPM
sudo systemctl status php8.2-fpm

# Log errori
sudo tail -f /var/log/nginx/error.log

# Riavvio servizi
sudo systemctl restart nginx php8.2-fpm

Errore: Laravel 500 Internal Server Error

# Log Laravel
tail -f /var/www/netgescon/netgescon-laravel/storage/logs/laravel.log

# Verifica permessi storage
sudo chmod -R 775 /var/www/netgescon/netgescon-laravel/storage

# Reset cache
cd /var/www/netgescon/netgescon-laravel
php artisan cache:clear
php artisan config:clear

File di Configurazione

Nginx Virtual Host

  • Percorso: /etc/nginx/sites-available/netgescon
  • Document root: /var/www/netgescon/netgescon-laravel/public
  • PHP-FPM socket: /var/run/php/php8.2-fpm.sock

Database

  • Nome: netgescon
  • Utente: netgescon_user
  • Password: NetGescon2024! (modificabile)

Directory Progetto

  • Base: /var/www/netgescon/
  • Laravel: /var/www/netgescon/netgescon-laravel/
  • Storage: /var/www/netgescon/netgescon-laravel/storage/

Performance e Sicurezza

Ottimizzazioni Incluse

  • PHP OPcache abilitato
  • Nginx gzip compression
  • Asset caching (1 anno)
  • Security headers
  • Database connection pooling

Backup e Monitoraggio

  • Backup automatico giornaliero (2:00 AM)
  • Retention 7 giorni
  • Monitoraggio health check
  • Log centralizzati

Supporto

Log Principali

  • Laravel: /var/www/netgescon/netgescon-laravel/storage/logs/laravel.log
  • Nginx: /var/log/nginx/error.log
  • MySQL: /var/log/mysql/error.log
  • Sistema: /var/log/syslog

Comandi Utili

# Status servizi
sudo systemctl status nginx php8.2-fpm mysql

# Riavvio servizi
sudo systemctl restart nginx php8.2-fpm mysql

# Test configurazione
sudo nginx -t
php artisan config:cache

# Monitoring real-time
htop
iotop
netstat -tlnp

Versioni Supportate

  • Ubuntu: 22.04 LTS (Jammy Jellyfish)
  • PHP: 8.2.x
  • Laravel: 10.x/11.x
  • MySQL: 8.0.x
  • Nginx: 1.22.x
  • Node.js: 18.x LTS

Note di Sicurezza

  • Firewall UFW configurato automaticamente
  • Password database sicura (modificabile)
  • Permessi file Laravel ottimizzati
  • Security headers Nginx
  • Debug mode disabilitato in produzione

Per supporto tecnico dettagliato, consultare GUIDA-MIGRAZIONE-LINUX-COMPLETA.md