6.3 KiB
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-stepREADME.md- Questo file
🔧 Script di Setup
setup-netgescon.sh- Installazione ambiente Linux completosetup-laravel.sh- Configurazione progetto Laravelnginx-config.sh- Configurazione Nginx automatica
💾 Script di Manutenzione
backup-netgescon.sh- Backup completo automaticomonitor-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