Dynadot .com transfer sale, only $10.12 with coupon code DYNA12, available while supplies last, ends October 1, 2026.

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

Namecheap AuctionsNamecheap Auctions
SpaceshipSpaceship
Spacemail by SpaceshipSpacemail by Spaceship
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
Catchy
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back