PHPで別WebサーバのURL監視
自分が乗っているWebサーバ以外の指定したURLに定期的にHTTP(HTTPSも可)要求を送り、 ステータスコード200が帰って来れば正常、その他なら異常と表示するスクリプトです。
自分が乗っているWebサーバでももちろん監視可能ですが、 「異常」の場合はこのPHPスクリプト自身も処理できない可能性が高いので、 あまり意味がありません…

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>他WebサーバのURL監視</title>
    <meta http-equiv="refresh" content="30"><!-- ★ 30秒ごとの自動リロード -->
</head>
<body>
<?php
/*=============================================================================*
 * 指定したURLにアクセスし、HTTPステータスコードを返します。
 *=============================================================================*/
function get_url_response($url){
    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 結果を文字列で返す
    curl_setopt($ch, CURLOPT_HEADER, true);         // ヘッダーを取得
    curl_setopt($ch, CURLOPT_NOBODY, true);         // ボディは不要(ヘッダーのみチェック)
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);           // タイムアウト(秒)
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close($ch);
    return $httpCode;
}

/*=============================================================================*
 * メイン
 *=============================================================================*/
$siteArr = [
"Radokura" => "http://sample:8090/",
"MySVN"    => "http://sample/ra/",
"OpenSearch" => "https://support.nii.ac.jp/ja/cib/api/b_opensearch",
"Google"   => "https://www.google.com/",
];
?>

<table border="1">
<tr><th>サーバ</th><th>結果</th><th>判定</th></tr>
<?php
foreach($siteArr as $site => $url){
    print "<tr><td>{$site}</td>";
    $code = get_url_response($url);
    print "<td>{$code}</td>";
    $desc = ($code == "200") ? "正常" : "異常";
    print "<td>{$desc}</td></tr>";
}
?>
</table>
</body>
</html>

Open Source Web Architecture Top

(first uploaded 2026/03/29 last updated 2026/03/29, URANO398 - KQ TAURA)