Servizi

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:

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

  1. Crea un nuovo file PHP sul tuo server, ad esempio monitor.php.
  2. Copia e incolla il codice fornito nel file.
  3. Modifica le variabili $website e $email con i tuoi dati.
  4. Salva il file e caricalo sul tuo server.
  5. Per eseguire lo script, accedi all’URL del file nel tuo browser (ad esempio, http://tuosito.com/monitor.php).
Nota: Assicurati che il tuo server di posta elettronica sia configurato correttamente affinché l’invio delle email funzioni.

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.