How Do I Display AWStats Publicly in Shared Web Hosting?

There is no direct way of displaying statistics of your domain on your website, but you can use the script given below to accomplish this – 

<?php
$user = 'username'; //your cPanel username
$pass = 'password'; //your cPanel password
$domain = 'website.com'; //do not include 'http://' or 'www.'

/* NO NEED TO TOUCH/ CHANGE ANYTHING BELOW */

//retrieves the file, either .pl or .png
function getFile($fileQuery){
global $user, $pass, $domain;
return file_get_contents("http://$user:$pass@$domain:2082/".$fileQuery,'r');
}

//it's a .png file...

if(strpos($_SERVER['QUERY_STRING'],'.png')!==false) {
$fileQuery = $_SERVER['QUERY_STRING'];
}

//probably the first time to access the page

elseif(empty($_SERVER['QUERY_STRING'])){
$fileQuery = "awstats.pl?config=$domain";
}

//otherwise, all other accesses

else {
$fileQuery = 'awstats.pl?'.$_SERVER['QUERY_STRING'];
}

//now get the file

$file = getFile($fileQuery);

//check again to see if it was a .png file
//if it's not, replace the links

if(strpos($_SERVER['QUERY_STRING'],'.png')===false) {
$file = str_replace('awstats.pl', basename($_SERVER['PHP_SELF']), $file);
$file = str_replace('="/images','="'.basename($_SERVER['PHP_SELF']).'?images',$file);
}

//if it is a png, output the appropriate header

else {
header("Content-type: image/png");
}

//output the file

echo $file;
?>

Note:
This article is for cPanel users only. 

This script requires that you save your cPanel username and password in the php file, which is a security risk. Thus, users are requested to use this script at their own risk. 

AccuWeb Hosting has not written this script; thus, it will not be able to provide any support for any issues arising out of the usage of this script.

Was this answer helpful?

« Back

chat