Monitoraggio Uptime del Sito Web con PHP
In questo articolo, ti mostreremo come creare uno script PHP per monitorare l’uptime del tuo sito web. Questo script ti avviserà via email ogni volta che il tuo sito non sarà raggiungibile, permettendoti di intervenire rapidamente per risolvere il problema.
Codice dello Script
Ecco lo script PHP che puoi utilizzare per monitorare l’uptime del tuo sito:
<?php
// Configurazione delle variabili
$website = "http://tuosito.com";
$email = "tuo@email.com";
$timeout = 10;
// Funzione per controllare l'uptime
function checkUptime($url, $timeout) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
// Verifica lo stato del sito
$httpCode = checkUptime($website, $timeout);
// Invia una notifica via email se il sito non è raggiungibile
if ($httpCode != 200) {
$subject = "Allarme: Il sito $website non è raggiungibile!";
$message = "Il sito $website ha risposto con il codice HTTP $httpCode.";
$headers = "From: monitor@$website";
mail($email, $subject, $message, $headers);
}
?>
Spiegazione Dettagliata del Codice
1. Configurazione delle Variabili
All’inizio dello script, configuriamo tre variabili principali:
$website: Inserisci l’URL del sito web che desideri monitorare.$email: Specifica l’indirizzo email a cui desideri ricevere le notifiche.$timeout: Imposta il tempo massimo di attesa per la risposta del server (in secondi).
2. La Funzione checkUptime
Questa funzione utilizza cURL per inviare una richiesta al sito web specificato. Restituisce il codice HTTP che indica lo stato della richiesta.
function checkUptime($url, $timeout) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
3. Verifica dello Stato del Sito
Dopo aver ottenuto il codice HTTP, lo script verifica se il codice è diverso da 200, che indica un sito raggiungibile e funzionante. Se il codice è diverso, viene inviata una notifica via email.
Guida Passo-Passo per l’Esecuzione dello Script
- Crea un nuovo file PHP sul tuo server, ad esempio
monitor.php. - Copia e incolla il codice fornito nel file.
- Modifica le variabili
$websitee$emailcon i tuoi dati. - Salva il file e caricalo sul tuo server.
- Per eseguire lo script, accedi all’URL del file nel tuo browser (ad esempio,
http://tuosito.com/monitor.php).
Automatizzare i controlli con un cron job
Eseguire lo script aprendolo dal browser va bene per un test, ma per un monitoraggio reale conviene pianificarlo con un cron job: così i controlli partono in automatico a intervalli regolari, anche quando non sei al computer.
# Controlla l'uptime ogni 5 minuti
*/5 * * * * /usr/bin/php /percorso/del/sito/monitor.php >/dev/null 2>&1
Aggiungi la riga al crontab con crontab -e, sostituendo il percorso con quello reale di monitor.php. Per ridurre i falsi allarmi, conviene considerare il sito “down” solo dopo due verifiche fallite consecutive e gestire anche gli errori di rete di cURL (timeout, DNS irraggiungibile) oltre al semplice codice HTTP diverso da 200.
Monitorare l’uptime del sito e ridurre i tempi di inattività
Utilizzando questo semplice script PHP, puoi monitorare l’uptime del tuo sito web e ricevere notifiche immediate in caso di problemi. Questo ti permetterà di intervenire prontamente e minimizzare i tempi di inattività del tuo sito.
Preferisci non pensarci tu? Con il servizio di manutenzione siti web di Evo Sistemi monitoriamo uptime, backup e aggiornamenti del tuo sito e interveniamo noi quando qualcosa non va. Richiedi informazioni.