4.0 KiB
4.0 KiB
Incident Runbook - 2026-03-09
Titolo
500 in produzione e sviluppo: permessi laravel.log + parse error Filament.
Sintomi Osservati
- Produzione:
UnexpectedValueExceptionsuvendor/monolog/.../StreamHandler.php. - Messaggio:
The stream or file "/var/www/netgescon/storage/logs/laravel.log" could not be opened in append mode: Permission denied. - Sviluppo:
500 Internal Server Errorsuhttp://192.168.0.200:8000/admin-filament.
Cause Radice
- Produzione - log non scrivibile dal web server
- File:
/var/www/netgescon/storage/logs/laravel.log - Stato trovato: owner/group
michele:michele, mode775. - Processo web:
nginxcon utente/gruppowww-data. - Effetto: Monolog non riesce ad aprire il log in append.
- Sviluppo - errore sintattico PHP
- File 1:
app/Providers/Filament/AdminFilamentPanelProvider.php - Problema: catena fluent Filament spezzata da parentesi/brace errate.
- File 2:
app/Filament/Pages/Condomini/NominativiStabile.php(linea area ~436). - Problema: concatenazione stringa SQL spezzata (
.fuori espressione).
Fix Applicati
A) Permessi Log Produzione
Comandi eseguiti:
chgrp www-data /var/www/netgescon/storage/logs/laravel.log
chmod 664 /var/www/netgescon/storage/logs/laravel.log
find /var/www/netgescon/storage/logs -maxdepth 1 -type f -name '*.log' -exec chgrp www-data {} \; -exec chmod 664 {} \;
Esito atteso:
laravel.loginmichele:www-datacon permessi-rw-rw-r--.
B) Parse Error Sviluppo
- Ripristinata sintassi valida in:
app/Providers/Filament/AdminFilamentPanelProvider.phpapp/Filament/Pages/Condomini/NominativiStabile.php
Verifica:
php -l app/Providers/Filament/AdminFilamentPanelProvider.php
php -l app/Filament/Pages/Condomini/NominativiStabile.php
php artisan about
Esito ottenuto:
No syntax errors detectedsui file.php artisan abouttorna operativo.
C) Allineamento Produzione
File copiati da sviluppo a produzione:
app/Providers/Filament/AdminFilamentPanelProvider.phpapp/Filament/Pages/Condomini/NominativiStabile.php
Pulizia cache:
cd /var/www/netgescon
php artisan optimize:clear
Check Rapido Post-Incident
- Verifica sintassi:
cd /home/michele/netgescon/netgescon-laravel
php -l app/Providers/Filament/AdminFilamentPanelProvider.php
php -l app/Filament/Pages/Condomini/NominativiStabile.php
- Verifica bootstrap Laravel (sviluppo):
php artisan about
- Verifica endpoint sviluppo:
curl -I http://192.168.0.200:8000/admin-filament
Atteso: 302 verso login (non 500).
- Verifica log produzione:
ls -l /var/www/netgescon/storage/logs/laravel.log
Atteso: gruppo www-data e write abilitata al gruppo.
Procedura Di Ripartenza Veloce (Se "Salta Tutto")
- Correggi permessi
storage/cachesu produzione:
chgrp -R www-data /var/www/netgescon/storage /var/www/netgescon/bootstrap/cache
find /var/www/netgescon/storage -type d -exec chmod 2775 {} \;
find /var/www/netgescon/storage -type f -exec chmod 664 {} \;
find /var/www/netgescon/bootstrap/cache -type d -exec chmod 2775 {} \;
find /var/www/netgescon/bootstrap/cache -type f -exec chmod 664 {} \;
- Riallinea file critici da sorgente:
cp /home/michele/netgescon/netgescon-laravel/app/Providers/Filament/AdminFilamentPanelProvider.php /var/www/netgescon/app/Providers/Filament/AdminFilamentPanelProvider.php
cp /home/michele/netgescon/netgescon-laravel/app/Filament/Pages/Condomini/NominativiStabile.php /var/www/netgescon/app/Filament/Pages/Condomini/NominativiStabile.php
- Pulisci cache Laravel:
cd /var/www/netgescon
php artisan optimize:clear
- Verifica endpoint e log:
curl -I http://192.168.0.200:8000/admin-filament
ls -l /var/www/netgescon/storage/logs/laravel.log
Note Preventive
- Evitare copy/sync che riscrivono ownership in
storage/logs. - Dopo hotfix su file PHP, eseguire sempre
php -lprima del deploy. - Se compare 500 su Filament, fare subito
php artisan aboutper intercettare parse error in bootstrap.