Have your own service status script! (CPANEL, PHP)

Namecheap AuctionsNamecheap Auctions
Namecheap AuctionsNamecheap Auctions
SpaceshipSpaceship
Watch

adam_uk

Established Member
Impact
20
this script is designed for users with there own host running cpanel with php

demo can be seen here
http://www.intentio-server.com

the code:
PHP:
<?php
/*
*   +------------------------------------------------------------------------------+
*       CPANEL STATUS SCRIPT                                                               
*   +------------------------------------------------------------------------------+
*       Copyright Notice(s)                                                        
*   +------------------------------------------------------------------------------+
*       Disclaimer Notice(s)                                                         
*       ex: This code is freely given to you and given "AS IS", SO if it damages     
*       your computer, formats your HDs, or burns your house I am not the one to
*       blame.                                                                    
*       Moreover, don't forget to include my copyright notices and name.              
*   +------------------------------------------------------------------------------+
*       Author(s): Crooty.co.uk (Adam C)                                   
*   +------------------------------------------------------------------------------+
*/ 

$data .= "
<style>
td,body
{
	font-family: Arial, Helvetica, sans-serif;
	font-size: 8pt;
	color: #444444;
}
</style>
<br>
    <center>
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b>
       <font size='1' color='#3896CC'>Service Status</font></b>
     </div> 
   </center>
<br>";

//configure script
$timeout = "1";

//set service checks
$port[1] = "80";       $service[1] = "Apache";                  $ip[1] ="";
$port[2] = "21";       $service[2] = "FTP";                     $ip[2] ="";
$port[3] = "3306";     $service[3] = "MYSQL";                   $ip[3] ="";
$port[4] = "25";       $service[4] = "Email(POP3)";             $ip[4] ="";
$port[5] = "143";      $service[5] = "Email(IMAP)";             $ip[5] ="";
$port[6] = "2095";     $service[6] = "Webmail";                 $ip[6] ="";
$port[7] = "2082";     $service[7] = "Cpanel";                  $ip[7] ="";
$port[8] = "80";       $service[8] = "Internet Connection";     $ip[8] ="google.com";
$port[9] = "2086";     $service[9] = "WHM";                     $ip[9] ="";

//
// NO NEED TO EDIT BEYOND HERE 
// UNLESS YOU WISH TO CHANGE STYLE OF RESULTS
//

//count arrays
$ports = count($port);
$ports = $ports + 1;
$count = 1;

//beggin table for status
$data .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse' bordercolor='#333333' align='center'>";

while($count < $ports){

	 if($ip[$count]==""){
	   $ip[$count] = "localhost";
	 }

		$fp = @fsockopen("$ip[$count]", $port[$count], $errno, $errstr, $timeout);
		if (!$fp) {
			$data .= "<tr><td>$service[$count]</td><td bgcolor='#FFC6C6'>Offline </td></tr>";
		} else {
			$data .= "<tr><td>$service[$count]</td><td bgcolor='#D9FFB3'>Online</td></tr>";
			fclose($fp);
		}
	$count++;
fclose($fp);

} 

//close table
$data .= "</table>";

echo $data;
?>

installation: copy to web server THATS IT!

should be fairly self explanitry

to include on your website you can either link to it your use include(); (if you use include remember to rename the extention to .php)

lemme know what you think :)

i made it so it saves me logging into cpanel to check what the servers up to and thought id share it


UPDATE:
if you wish to display server uptime and server loads on the script add this to the code (REMEMBER: it must be placed inside the <? and ?> for it to work

PHP:
//
// SERVER INFORMATION
//

$data1 .= "
<br>
    <center>
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b>
       <font size='1' color='#3896CC'>Server Information</font></b>
     </div> 
   </center><BR>";

$data1 .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse' 

bordercolor='#333333' align='center'>";

//GET SERVER LOADS
$loadresult = @exec('uptime'); 
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$loadresult,$avgs);


//GET SERVER UPTIME
  $uptime = explode(' up ', $loadresult);
  $uptime = explode(',', $uptime[1]);
  $uptime = $uptime[0].', '.$uptime[1];

$data1 .= "<tr><td>Server Load Averages </td><td>$avgs[1], $avgs[2], $avgs[3]</td>\n";
$data1 .= "<tr><td>Server Uptime        </td><td>$uptime                     </td></tr>";
$data1 .= "</table>";
echo $data1;

B-)
 
Last edited:
1
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
GoDaddyGoDaddy
Love you man.
 
0
•••
ooo! its cool. i like it.,
 
0
•••
awsome, thnx.... :) do you have any scripts to show traffic or possibly unique visitors so one wouldnt have to log on to cpanel everytime to view.
 
0
•••
glad you all like it :)

afraid i dont skrilla

but you could always try setting up your own copy of awstats or something similar.
 
0
•••
Noticed one thing that *might* be an issue. There is no fclose if the socket is successful.
 
0
•••
I dont think it will be an issue, it works for me normally anyway.

PJ
 
0
•••
I was just worried that it might open 1000 connections and crash the server. If you're on Lindows that'll probably happen. A 386 too ;)
 
0
•••
But hey, Im not on Lindows am I, Im on linux ;)

PJ
 
0
•••
so there isnt, thanks for spotting that bug i will edit the code and add it in, ive been using it since i built the script and it works perfectly
 
0
•••
Very nice! When my team gets our new web-host set up (we'll be the best ;), a little more expensive than the rest, but, you just wait and see :D), this should be useful.
 
0
•••
I got it up at http://dotnamehost.com/stats.php I like it I will play with it. By the way I had to remove the fclose parts it was giving me errors not sure why maybe my server setup but I removed them and it worked should I have done that? I don't see any problems though and it didn't crash server etc so I think it works like that.
 
0
•••
im glad you liked it :)

the fclose bit should have worked and still works on mine ok :s its not really required it just removes any bits out of memory/tmp etc but they should go when the script terminates.
 
0
•••
Excellent! I'll be using this ^_^
 
0
•••
Warning: fclose(): 2 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 3 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): supplied argument is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 4 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 5 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 6 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 7 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 8 is not a valid stream resource in /home/username/public_html/status.php on line 76

Warning: fclose(): 9 is not a valid stream resource in /home/username/public_html/status.php on line 76
 
0
•••
i386 said:
Noticed one thing that *might* be an issue. There is no fclose if the socket is successful.
I believe there is :) (Unless this was added afterwards).

if (!$fp) {
$data .= "<tr><td>$service[$count]</td><td bgcolor='#FFC6C6'>Offline </td></tr>";
} else {
$data .= "<tr><td>$service[$count]</td><td bgcolor='#D9FFB3'>Online</td></tr>";
fclose($fp);
}
$count++;
fclose($fp);
 
0
•••
Thanks for this code, seems like an old thread but . . . Rep added.
 
0
•••
Code:
if (!$fp) {
$data .= "<tr><td>$service[$count]</td><td bgcolor='#FFC6C6'>Offline </td></tr>";
fclose($fp);
} else {
$data .= "<tr><td>$service[$count]</td><td bgcolor='#D9FFB3'>Online</td></tr>";
fclose($fp);
}
$count++;

it should be like this, or it may try to close connections that are already closed and therefore some errors
 
0
•••
None of the code modifications really worked, do you think you can post the entire script again with your modification? I might have inserted the modification in the wrong place or something.
 
0
•••
Excellent script...thanks will use it when I get free!
 
0
•••
demo url : http://www.imghosted.net/service.php
try this xeserve this should fix your error
full code (working of course)
Code:
<?php 
/* 
*   +------------------------------------------------------------------------------+ 
*       CPANEL STATUS SCRIPT                                                                
*   +------------------------------------------------------------------------------+ 
*       Copyright Notice(s)                                                         
*   +------------------------------------------------------------------------------+ 
*       Disclaimer Notice(s)                                                          
*       ex: This code is freely given to you and given "AS IS", SO if it damages      
*       your computer, formats your HDs, or burns your house I am not the one to 
*       blame.                                                                     
*       Moreover, don't forget to include my copyright notices and name.               
*   +------------------------------------------------------------------------------+ 
*       Author(s): Crooty.co.uk (Adam C)                                    
*   +------------------------------------------------------------------------------+ 
*/  

$data .= " 
<style> 
td,body 
{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 8pt; 
    color: #444444; 
} 
</style> 
<br> 
    <center> 
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b> 
       <font size='1' color='#3896CC'>Service Status</font></b> 
     </div>  
   </center> 
<br>"; 

//configure script 
$timeout = "1"; 

//set service checks 
$port[1] = "80";       $service[1] = "Apache";                  $ip[1] =""; 
$port[2] = "21";       $service[2] = "FTP";                     $ip[2] =""; 
$port[3] = "3306";     $service[3] = "MYSQL";                   $ip[3] =""; 
$port[4] = "25";       $service[4] = "Email(POP3)";             $ip[4] =""; 
$port[5] = "143";      $service[5] = "Email(IMAP)";             $ip[5] =""; 
$port[6] = "2095";     $service[6] = "Webmail";                 $ip[6] =""; 
$port[7] = "2082";     $service[7] = "Cpanel";                  $ip[7] =""; 
$port[8] = "80";       $service[8] = "Internet Connection";     $ip[8] ="google.com"; 
$port[9] = "2086";     $service[9] = "WHM";                     $ip[9] =""; 

// 
// NO NEED TO EDIT BEYOND HERE  
// UNLESS YOU WISH TO CHANGE STYLE OF RESULTS 
// 

//count arrays 
$ports = count($port); 
$ports = $ports + 1; 
$count = 1; 

//beggin table for status 
$data .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse' bordercolor='#333333' align='center'>"; 

while($count < $ports){ 

     if($ip[$count]==""){ 
       $ip[$count] = "localhost"; 
     } 

        $fp = @fsockopen("$ip[$count]", $port[$count], $errno, $errstr, $timeout); 
        if (!$fp) { 
            $data .= "<tr><td>$service[$count]</td><td bgcolor='#FFC6C6'>Offline </td></tr>"; 
	fclose($fp); 
        } else { 
            $data .= "<tr><td>$service[$count]</td><td bgcolor='#D9FFB3'>Online</td></tr>"; 
            fclose($fp); 
        } 
    $count++; 


}  

//close table 
$data .= "</table>"; 

echo $data; 
 // 
// SERVER INFORMATION 
// 

$data1 .= " 
<br> 
    <center> 
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b> 
       <font size='1' color='#3896CC'>Server Information</font></b> 
     </div>  
   </center><BR>"; 

$data1 .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse'  

bordercolor='#333333' align='center'>"; 

//GET SERVER LOADS 
$loadresult = @exec('uptime');  
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$loadresult,$avgs); 


//GET SERVER UPTIME 
  $uptime = explode(' up ', $loadresult); 
  $uptime = explode(',', $uptime[1]); 
  $uptime = $uptime[0].', '.$uptime[1]; 

$data1 .= "<tr><td>Server Load Averages </td><td>$avgs[1], $avgs[2], $avgs[3]</td>\n"; 
$data1 .= "<tr><td>Server Uptime        </td><td>$uptime                     </td></tr>"; 
$data1 .= "</table>"; 
echo $data1;  

?>

the only thing i did was putting the fclose($fp) in a diferente cicle since it was giving me errors aswell... hope it helps
 
Last edited:
0
•••
DomainEasy: white label portfolios are live. Enable yours.

We're social

Escrow.com
Spaceship
Escrowly
CryptoExchange.com
Domain Recover
URLs.com
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back