# NetGesCon Laravel - Guida Installazione Linux ## 🐧 CompatibilitΓ  Sistema Operativo **⚠️ IMPORTANTE**: NetGesCon Laravel Γ¨ progettato ESCLUSIVAMENTE per sistemi Linux. - βœ… **Linux**: Ubuntu 22.04+, Debian 11+, CentOS 8+, RHEL 8+ - βœ… **WSL2**: Windows Subsystem for Linux (per sviluppo) - ❌ **Windows**: Non supportato nativamente - ❌ **macOS**: Non testato/supportato ## πŸ“‹ Prerequisiti Sistema ### 1. Server Requirements ```bash # Sistema operativo Ubuntu 22.04 LTS o successivo (raccomandato) Debian 11+ / CentOS 8+ / RHEL 8+ # Hardware minimo CPU: 2 core RAM: 4GB (8GB raccomandato) Storage: 20GB liberi ``` ### 2. Software Prerequisites ```bash # PHP 8.2+ php >= 8.2 php-extensions: mbstring, xml, json, zip, curl, gd, mysql, redis # Database MySQL 8.0+ o MariaDB 10.6+ # Web Server Apache 2.4+ con mod_rewrite o Nginx 1.18+ # Composer Composer 2.0+ # Node.js (per asset building) Node.js 18+ con npm/yarn # Redis (per cache e sessioni) Redis 6.0+ # Git Git 2.25+ ``` ## ⚑ Installazione Rapida (Ubuntu/Debian) ### Step 1: Aggiornamento Sistema ```bash sudo apt update && sudo apt upgrade -y ``` ### Step 2: Installazione PHP 8.2+ ```bash # Aggiungere repository PHP sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y sudo apt update # Installare PHP e estensioni sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-xml \ php8.2-mbstring php8.2-curl php8.2-zip php8.2-gd \ php8.2-json php8.2-redis php8.2-bcmath -y ``` ### Step 3: Installazione Database MySQL ```bash sudo apt install mysql-server -y sudo mysql_secure_installation # Configurazione utente NetGesCon sudo mysql -e "CREATE USER 'netgescon'@'localhost' IDENTIFIED BY 'PASSWORD_SICURA';" sudo mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'netgescon'@'localhost' WITH GRANT OPTION;" sudo mysql -e "FLUSH PRIVILEGES;" ``` ### Step 4: Installazione Web Server (Apache) ```bash sudo apt install apache2 -y sudo a2enmod rewrite ssl headers sudo systemctl enable apache2 sudo systemctl start apache2 ``` ### Step 5: Installazione Composer ```bash curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer composer --version ``` ### Step 6: Installazione Node.js ```bash curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install nodejs -y npm --version && node --version ``` ### Step 7: Installazione Redis ```bash sudo apt install redis-server -y sudo systemctl enable redis-server sudo systemctl start redis-server ``` ## πŸš€ Installazione NetGesCon ### Step 1: Clone Repository ```bash # Andare nella directory web cd /var/www/ # Clone progetto sudo git clone https://github.com/TUOREPO/netgescon-laravel.git sudo chown -R www-data:www-data netgescon-laravel cd netgescon-laravel ``` ### Step 2: Installazione Dipendenze ```bash # Composer composer install --optimize-autoloader --no-dev # NPM assets npm install npm run production ``` ### Step 3: Configurazione Environment ```bash # Copiare file di configurazione cp .env.example .env # Generare Application Key php artisan key:generate ``` ### Step 4: Configurazione Database (.env) ```bash # Editare .env con i tuoi dati nano .env ``` ```env # Database principale DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=netgescon_master DB_USERNAME=netgescon DB_PASSWORD=TUA_PASSWORD_SICURA # Cache Redis CACHE_DRIVER=redis SESSION_DRIVER=redis QUEUE_CONNECTION=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 # Mail (configurare per invio email) MAIL_MAILER=smtp MAIL_HOST=smtp.tuodominio.com MAIL_PORT=587 MAIL_USERNAME=noreply@tuodominio.com MAIL_PASSWORD=password_email MAIL_ENCRYPTION=tls # NetGesCon specifico NETGESCON_SISTEMA_MULTI_DB=true NETGESCON_CARTELLE_DATI_BASE=/var/www/netgescon-data NETGESCON_BACKUP_PATH=/var/www/netgescon-backup NETGESCON_LOG_LEVEL=info ``` ### Step 5: Setup Database ```bash # Creare database master mysql -u netgescon -p -e "CREATE DATABASE netgescon_master CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # Eseguire migrazioni php artisan migrate # Popolare dati iniziali php artisan db:seed ``` ### Step 6: Configurazione Permessi ```bash # Directory dati NetGesCon sudo mkdir -p /var/www/netgescon-data sudo mkdir -p /var/www/netgescon-backup sudo chown -R www-data:www-data /var/www/netgescon-data sudo chown -R www-data:www-data /var/www/netgescon-backup # Permessi Laravel sudo chown -R www-data:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache ``` ### Step 7: Configurazione Apache Virtual Host ```bash sudo nano /etc/apache2/sites-available/netgescon.conf ``` ```apache ServerName tuodominio.com DocumentRoot /var/www/netgescon-laravel/public AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/netgescon_error.log CustomLog ${APACHE_LOG_DIR}/netgescon_access.log combined # Per HTTPS (raccomandato) ServerName tuodominio.com DocumentRoot /var/www/netgescon-laravel/public SSLEngine on SSLCertificateFile /path/to/certificate.crt SSLCertificateKeyFile /path/to/private.key AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/netgescon_ssl_error.log CustomLog ${APACHE_LOG_DIR}/netgescon_ssl_access.log combined ``` ```bash # Attivare sito sudo a2ensite netgescon.conf sudo a2dissite 000-default sudo systemctl reload apache2 ``` ### Step 8: Setup Cron Jobs ```bash sudo crontab -e -u www-data ``` ```cron # NetGesCon - Laravel Scheduler * * * * * cd /var/www/netgescon-laravel && php artisan schedule:run >> /dev/null 2>&1 # Backup automatico (ogni notte alle 2:00) 0 2 * * * cd /var/www/netgescon-laravel && php artisan netgescon:backup:auto # Cleanup log e temp files (ogni domenica alle 3:00) 0 3 * * 0 cd /var/www/netgescon-laravel && php artisan netgescon:cleanup ``` ## πŸ” Configurazione Sicurezza ### 1. Firewall (UFW) ```bash sudo ufw enable sudo ufw allow ssh sudo ufw allow 'Apache Full' sudo ufw status ``` ### 2. SSL Certificate (Let's Encrypt) ```bash sudo apt install certbot python3-certbot-apache -y sudo certbot --apache -d tuodominio.com ``` ### 3. Database Security ```bash # Backup regolari sudo crontab -e # 0 1 * * * mysqldump -u netgescon -p netgescon_master > /var/www/netgescon-backup/db_$(date +\%Y\%m\%d).sql # Configurare accesso limitato sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # bind-address = 127.0.0.1 ``` ## 🎯 Primo Accesso 1. **Aprire browser**: `https://tuodominio.com` 2. **Login Super Admin**: - Email: `superadmin@netgescon.local` - Password: `SuperAdminNetGesCon2025!` 3. **Cambiare password** del super admin immediatamente 4. **Creare primo amministratore** per test ## πŸ”§ Manutenzione Sistema ### Aggiornamenti ```bash cd /var/www/netgescon-laravel git pull origin main composer install --optimize-autoloader --no-dev npm run production php artisan migrate php artisan config:cache php artisan route:cache php artisan view:cache sudo systemctl reload apache2 ``` ### Backup ```bash # Backup database php artisan netgescon:backup:create # Backup files tar -czf netgescon_backup_$(date +%Y%m%d).tar.gz \ /var/www/netgescon-laravel \ /var/www/netgescon-data \ /var/www/netgescon-backup ``` ### Monitoring ```bash # Log Laravel tail -f storage/logs/laravel.log # Log Apache sudo tail -f /var/log/apache2/netgescon_error.log # Status servizi sudo systemctl status apache2 sudo systemctl status mysql sudo systemctl status redis-server ``` ## πŸ› Troubleshooting ### 1. Errore Permessi ```bash sudo chown -R www-data:www-data /var/www/netgescon-laravel sudo chmod -R 775 storage bootstrap/cache ``` ### 2. Database Connection Error ```bash # Verificare servizio MySQL sudo systemctl status mysql sudo systemctl restart mysql # Test connessione mysql -u netgescon -p -e "SHOW DATABASES;" ``` ### 3. Cache Issues ```bash php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear ``` ### 4. Asset Issues ```bash npm run development # o npm run production ``` ## πŸ“ž Supporto - **Documentazione**: `README.md` e `TECHNICAL_SPECS.md` - **Log Progressivo**: `PROGRESS_LOG.md` - **Issues GitHub**: [Repository Issues] - **Email**: supporto@netgescon.com --- *Ultima modifica: 7 Luglio 2025*