Questa guida vale per Symfony 6.4 LTS e PHP 8.1 o successivo. Sono necessari un account live24h, un workspace e una API key con permessi di scrittura – vedi passaggi comuni .
Installazione
Installazione tramite Composer:
composer require live24h/symfony-adapter
Registra il bundle in config/bundles.php:
// config/bundles.php
return [
// ...
Live24h\SymfonyAdapter\Live24hMonitorBundle::class => ['all' => true],
];
Importa poi il routing del bundle, ad esempio in config/routes/live24h.yaml:
# config/routes/live24h.yaml
live24h_monitor:
resource: '@Live24hMonitorBundle/Resources/config/routes.php'
Crea poi config/packages/live24h_monitor.yaml con i tre parametri api_base (predefinito https://api.live24h.eu), site_url (l’URL pubblico dell’app da analizzare) e cache_pool (predefinito cache.app):
# config/packages/live24h_monitor.yaml
live24h_monitor:
api_base: 'https://api.live24h.eu'
site_url: 'https://www.example.com'
cache_pool: 'cache.app'
La API key non è un parametro di configurazione: la inserisci a runtime nell’interfaccia delle Impostazioni sotto /admin/live24h/settings (mostrata mascherata). La pubblicazione nel marketplace Packagist seguirà.
Proteggere il percorso
Il bundle viene montato sotto /admin/live24h e deve essere protetto dall’host dietro ruolo e firewall. Limita il percorso nella security di Symfony tramite access_control:
# config/packages/security.yaml
security:
access_control:
- { path: ^/admin/live24h, roles: ROLE_ADMIN }
Dopodiché raggiungi il Health Center sotto /admin/live24h/health.
Passo dopo passo
Il flusso completo e illustrato lo trovi nella panoramica . Qui i passaggi per Symfony:
- Apri il Health Center sotto
/admin/live24h/health. - Verifica nelle Impostazioni la API key inserita e testa la connessione.
- Avvia l’analisi della tua app.
- Guarda il Website Health Score e le raccomandazioni.
- Seleziona i check – i suggerimenti bloccati sono contrassegnati come «Da Pro» e restano visibili.
- Crea i check in live24h con un clic.
In alternativa tramite Console-Command
Per rollout headless e ripetibili è disponibile il Console-Command:
# Dry-run: mostra scan, modules, score e suggestions come report
php bin/console live24h:scan
# Creazione: crea i suggerimenti di default
php bin/console live24h:scan --apply
Il comando è adatto a pipeline di deploy e Cron, perché aggiorna la scansione senza interfaccia backend. Senza --apply gira come dry-run.
Soluzione dei problemi e suggerimenti
Il Health Center sotto /admin/live24h/health non è raggiungibile.
Verifica che il bundle sia registrato in config/bundles.php e che il routing sia importato, e svuota la cache con php bin/console cache:clear. Assicurati inoltre che la tua voce access_control consenta l’accesso al tuo ruolo.
La chiamata a /admin/live24h non è protetta.
La protezione spetta all’host. Imposta una voce access_control per ^/admin/live24h in config/packages/security.yaml e metti la rotta dietro la tua firewall.
Il «test di connessione» fallisce.
Controlla la api_key (sono necessari i permessi di scrittura), la api_base (https://api.live24h.eu) e se il server può aprire connessioni verso l’esterno. I firewall dell’hosting talvolta bloccano le richieste in uscita.
I Messenger-Worker o i task dello Scheduler non compaiono.
I job in background vengono individuati al momento della build del container. Dopo modifiche ai transport o agli schedule svuota la cache con php bin/console cache:clear, così la discovery viene aggiornata. Il worker heartbeat è opt-in.
Un check heartbeat resta su «In attesa». È normale e non è un errore: un heartbeat attende il primo segnale del worker monitorato (il ping all’URL dell’heartbeat). Finché il Messenger-Worker o il task dello Scheduler non si è ancora annunciato, il check resta su «In attesa» – non su «Inattivo». Con la prima esecuzione lo stato passa a «Operativo».
Un suggerimento è contrassegnato come «Da Pro». Il tipo di check non è incluso nel tuo piano. Puoi deselezionarlo oppure aggiornare il piano .
Domande frequenti
Health Center o Console-Command – cosa scegliere? Entrambi portano allo stesso risultato. Il Health Center è vicino al cliente, il Console-Command è adatto a rollout headless e ripetibili in pipeline di deploy e Cron.
Mi serve uno shop o un CMS? No. Il bundle è pensato per app e API Symfony individuali e non contiene moduli commerce.
Vengono verificate le impostazioni email? Sì, a titolo informativo: MX, SPF, DKIM e DMARC vengono valutati e resi visibili, ma non attivano un check email attivo.