PHPでステータスコードを取得する方法
2024/01/18
サーバーの死活監視でUptimeRobotを使っていたけど、どうも正常に監視してくれないサイトがあった。UptimeRobot側ではサーバーダウン状態になっているけど、サイト側は正常に閲覧できるという状態。
原因が分からないので、それであれば簡易の死活管理ツールを作ろうと思った。で、ステータスコードを取得する方法をメモ。
ソースコード
$header = null; $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => "", CURLOPT_USERAGENT => "spider", CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, CURLOPT_MAXREDIRS => 10, ); $ch = curl_init('http://hogehoge.com'); //ここに調べたいサイトのURLを入れる curl_setopt_array($ch, $options); $content = curl_exec($ch); if(!curl_errno($ch)) { $header = curl_getinfo($ch); } curl_close($ch); $status = ($header['http_code'] == 200) ? true: false; //死活監視なので落ちてるかどうかだけ振り分ける
その他
最初はfile_get_contentsで対応しようとしたんだけど、キャッシュの問題なのかテストサーバーでapacheのon/offを切り替えてテストしても、ステータスコードが200のままだった。タイムスタンプとかをGETクエリとして付与しても変わらず。curlだといけた。
あとは障害発生時にアラートメール送信すればUptimeRobotみたく使えそう。
参考サイト
関連記事
-
-
PHPMailerを使ってメールをSMTP送信する方法(Composer無し)
PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...
-
-
PHPでファイルをダウンロードさせる
集計ページみたいなんがあった。その集計ページを CSV化したいと言われた。 ■ソ ...
-
-
Composer自体のインストールとmonolog及びTwigをComposer経由でインストールする方法
「Composerで○○をインストール」というのをよく見かけるがComposer ...
-
-
CodeIgniterのバージョンの調べ方
CodeIgniterを使っているシステムがあったが、どうも記憶しているディレク ...
-
-
SendGridを使ってメールサーバを構築せずにPHPからメールを送信する方法
メールサーバを構築せずに独自ドメインのメールアドレスにてメール送信を行いたい。過 ...