Questa guida vale per Laravel 10 o 11 e PHP 8.1 o superiore. Sono necessari un account live24h, un workspace e una API key con permessi di scrittura – vedi passaggi comuni .
Installazione
Il pacchetto è un Composer-Package con auto-discovery – il ServiceProvider viene incluso automaticamente:
composer require live24h/laravel-adapter
php artisan vendor:publish --provider="Live24h\LaravelAdapter\LaravelServiceProvider"
Il secondo comando pubblica la configurazione config/live24h.php. Inserisci lì api_key e api_base_url (valore predefinito https://api.live24h.eu) – oppure inserisci la key più tardi nella pagina delle impostazioni. Il pacchetto si ottiene tramite download diretto da live24h, una pubblicazione nel marketplace seguirà.
Passo dopo passo
Il pacchetto fornisce un gruppo di rotte protette da autenticazione (middleware: web, auth): il Health Center sotto /live24h/health, una pagina delle impostazioni e il wizard di setup. Il flusso illustrato è descritto nella panoramica
; i passaggi per Laravel sono:
- Apri come utente autenticato
/live24h/health. - Verifica nella pagina delle impostazioni la connessione («test di connessione»). La API key viene sempre mostrata mascherata.
- Avvia l’analisi dell’app.
- Guarda il Website Health Score e le raccomandazioni.
- Seleziona i check – i suggerimenti bloccati restano visibili e sono contrassegnati come «Da Pro».
- Crea i check con un clic.
La scansione copre quattro ambiti: SEO (robots.txt, sitemap), SSL/dominio/DNS (certificato TLS, apex domain), deliverability delle email (MX, SPF, DKIM, DMARC del dominio mittente dalla configurazione MAIL_*) ed elaborazione in background (Scheduler schedule:run e Queue-Worker come heartbeat).
Preset di policy per i rollout
Per più app sono disponibili tre preset che determinano l’ampiezza dei check creati:
- essential – solo i check più importanti (raggiungibilità, SSL).
- recommended – lo standard, inclusi SEO, dominio e mail-DNS.
- all – in aggiunta gli heartbeat di Scheduler e Queue.
Così porti lo stesso standard di monitoraggio in modo riproducibile in ogni progetto Laravel.
Soluzione dei problemi e suggerimenti
La rotta /live24h/health non è raggiungibile.
Il gruppo di rotte usa i middleware web e auth – devi quindi essere autenticato. Verifica inoltre che la configurazione sia stata pubblicata (php artisan vendor:publish) e svuota all’occorrenza la cache con php artisan config:clear e php artisan route:clear.
Il «test di connessione» fallisce.
Controlla api_key (sono necessari i permessi di scrittura), api_base_url (https://api.live24h.eu) e se il server può aprire connessioni verso l’esterno.
Viene verificato il dominio email sbagliato o nessuno.
Il dominio mittente viene ricavato dalla configurazione MAIL_*. Imposta correttamente MAIL_FROM_ADDRESS, così MX, SPF, DKIM e DMARC vengono verificati per il dominio giusto.
Un check heartbeat resta su «In attesa». È normale e non è un errore: un heartbeat attende il primo segnale del processo monitorato (il ping all’URL dell’heartbeat). Finché l’esecuzione dello Scheduler o il Queue-Worker non si è ancora annunciato, il check resta su «In attesa» – non su «Inattivo». Con la prima esecuzione lo stato passa a «Operativo».
Lo Scheduler-Heartbeat non si annuncia.
Assicurati che php artisan schedule:run venga effettivamente eseguito ogni minuto tramite Cron e che il Queue-Worker (php artisan queue:work) sia in esecuzione. Senza un processo in esecuzione il relativo heartbeat resta su «In attesa».
Domande frequenti
Devo inserire le rotte a mano? No. La scansione ricava i check rilevanti dall’app – SEO, SSL/dominio, mail-DNS nonché heartbeat di Scheduler e Queue. Devi solo selezionare e creare con un clic.
Viene misurato o salvato qualcosa nella mia app? Il pacchetto scansiona in sola lettura e crea i check. Le verifiche 24/7 in esecuzione vengono poi assunte dalla piattaforma live24h – il pacchetto stesso non è un motore di monitoraggio.
È adatto a più app?
Sì. Con i preset di policy essential, recommended e all lo stesso standard di monitoraggio può essere distribuito in modo riproducibile su tutte le app Laravel.