Home | 建站知识库 | English
  • Who are WE
  • Service Introduced
  • Case Show
  • Contact Us
  •  建站咨询:020-87531704
  •  售后服务:020-87545320
  •  建站热线:13719300941

如何用PHP监控网站运行状态?

用PHP监控网站,大家或许是第一次听说。真的可以做到吗?现在我们就来求证一下。

预期准备

    一个139邮箱,收到邮件后,可以免费给你短信提醒。如果你不需要短信提醒功能,用什么邮箱都可以

    另外一个可以运行PHP文件的Web服务器(相当于监控服务器),现在免费的PHP网站空间很多,上网搜搜。如果将PHP监控文件放到你自己的服务器上,这个监控文件也就等于摆设,服务器挂掉了,它也无法运行了,怎么能起到监控作用呢?

1、创建监控文件

    打开你喜欢的文本编辑器,新建一个PHP文件,命名为monitor.php。这部分代码也很简单,就是两个函数,一个用于测试服务器是否可以访问,另一个用于给你发送邮件通知

复制粘贴以下代码至monitor.php文件:

<?php
function check($host, $find)
{
    $fp = fsockopen($host, 80, $errno, $errstr, 10);
    if (!$fp)
    {
        echo "$errstr ($errno)\n";
    } else
    {
       $header = "GET / HTTP/1.1\r\n";
       $header .= "Host: $host\r\n";
       $header .= "Connection: close\r\n\r\n";
       fputs($fp, $header);
       while (!feof($fp))
       {
           $str .= fgets($fp, 1024);
       }
       fclose($fp);
       return (strpos($str, $find) !== false);
    }
}

function alert($host)
{
    /* 下面的youremail@139.com改成你的邮箱地址 */
    mail('youremail@139.com', 'Monitoring', $host.' down');
}

/* 下面的网址改成你要监控的网址 */
$host = 'www.ludou.org';

/* 下面的ludou.org改成你的网站首页源代码中的一段特殊字符串 */
$find = 'ludou.org';

if (!check($host, $find))
    alert($host);

?>

    第一个函数check(),需要传递两个参数:第一$host是你想要监控的网站(如:www.ludou.org);第二个$find用于查找你的网站首页源代码中的一段字符串,其实添加这个的目的是出于安全考虑,如果你的首页包含这段字符串,说明你的网页没有被修改(如:被骇客恶意修改)。

    如果你的网站无法访问或者安全字符串找不到,将会运行alert()函数,给你发送告警邮件。请确保你的监控主机可以正常使用PHP的发送邮件函数mail(),否则将无法发送邮件,替代方法是使用phpmailer

    好了,保存monitor.php,并上传至你的监控服务器上。

2、设置一个计划任务

    现在问题又来了,要想让monitor.php运行,我们得在浏览器中打开http://mymonitoringserver.com/monitor.php才能检测服务器状态,这样的监控也等于白搭。

    解决这个问题的办法是使用计划任务(Cron Job),大多数虚拟主机都提供了这个功能,它可以在你设定的时刻自动地运行php脚本(例如每小时运行一次monitor.php),关于计划任务的设定可根据各人的主机来设定,遇到问题可以联系主机的客服。

    看到这些代码,是不是感觉很麻烦呢?其实不然,只要我们了解了原理再做起来一切都得心应手。大家不妨试试。

CopyRights © 2011 Web新势力版权所有 http://www.68web.net
网站备案号:粤ICP备07073733号