爱车车 2008-10-2 18:21
WordPress的MySQL数据库服务器监控插件
<img src="http://www.williamlong.info/logo/wordpress.gif" alt="WordPress" class="thumb" /><p> 对于某些国外主机,其HTTP服务可能比较稳定,但是MySQL服务却经常宕机,比如我的英文博客使用的DreamHost提供的MySQL就深受其害,经常无法连接MySQL服务器,并且通常都是美国时间午夜的时候宕机,有时候能停好几个小时,也难怪那么多人抱怨DreamHost的服务器不稳定。</p><p> 我这里提供的插件修改可以监控你的WordPress的MySQL状况,一旦发现MySQL数据库无法连接,就会发送一封邮件到指定的信箱,同时在一个文本文件中进行记录,你可以通过查看日志来分析MySQL数据库的监视和运行情况是否良好,并且在异常情况出现的时候能立即就知道,以便联系主机服务人员维护。</p><p> 运行之后,我这里记录DreamHost的MySQL数据库几个小时就能出现四百多次异常报道,看来DreamHost的服务器真的是很垃圾啊。</p><p> 废话就不多说了,下面是安装和设置的详细方法:</p><p> 首先建立一个名为log.txt的文件,上传到WordPress的根目录,将其权限设置为666(FlashFXP又修改文件权限的功能)。</p><p> 然后修改下面代码,将发信人$from和收信人$to的邮件地址设置为个人信箱。</p><p>// Change the e-mail address below .<br />$from = "webmaster@moon-blog.com";<br />$to = "webmaster@moon-blog.com";</p><p>$subject = "MySQL Crashed!";<br />$body = date("Y-m-d H:i:s");<br />$headers = 'From: '.$from . "\r\n"<br /> .'Reply-To: '.$from . "\r\n"<br /> .'X-Mailer: PHP/' . phpversion();<br />mail($to, $subject, $body, $headers);<br />// Log to file<br />$filename = 'log.txt';<br />$somecontent = date("Y-m-d H:i:s");<br />$somecontent = $somecontent . "\r\n";<br />if (is_writable($filename)) {<br /> if (!$handle = fopen($filename, 'a')) {<br /> exit;<br /> }<br /> if (!fwrite($handle, $somecontent)) {<br /> exit;<br /> }<br /> fclose($handle);<br />} </p><p> 之后,打开wp-includes/wp-db.php文件,找到“<em><strong>if (!$this->dbh) {”</strong></em>这一行(对于WordPress 2.3.1是66行),让上面的代码插入在这行的后面。</p><p> 上传并覆盖这个文件。</p><p> 之后每当数据库连接出现问题后,WordPress就都会自动发送邮件到你的信箱,同时将时间记录在log.txt文件之中。当我们选择支持MySQL的虚拟主机的时候,也可以使用这个程序来测试服务器的稳定性。</p><p> 本插件英文版:WordPress Plugin: MySQL Server Crash Monitor</p>