HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   General (http://www.howtoforge.com/forums/forumdisplay.php?f=25)
-   -   Webalizer lags two days (http://www.howtoforge.com/forums/showthread.php?t=59628)

TKoos 18th November 2012 22:56

Webalizer lags two days
 
Hi,

I've a problem with Webalizer. The cron runs every night at 00:30. AFAIK that should mean that the current /stats always would include the day before.

Mine does not. :-/ Today is 18 of nov. The stats however only counts up to the 16:th.

Am I wrong, is this the expected behaviour?


This is the webalizer part of cron_daily.php:

Code:

#######################################################################################################
// Create webalizer statistics
#######################################################################################################

function setConfigVar( $filename, $varName, $varValue ) {
        if($lines = @file($filename)) {
                $out = '';
                $found = 0;
                foreach($lines as $line) {
                        @list($key, $value) = preg_split('/[\t= ]+/', $line, 2);
                        if($key == $varName) {
                                $out .= $varName.' '.$varValue."\n";
                                $found = 1;
                        } else {
                                $out .= $line;
                        }
                }
                if($found == 0) {
                        //* add \n if the last line does not end with \n or \r
                        if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
                        //* add the new line at the end of the file
                        if($append == 1) $out .= $varName.' '.$varValue."\n";
                }

                file_put_contents($filename,$out);
        }
}


$sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE stats_type = 'webalizer' AND server_id = ".$conf['server_id'];
$records = $app->db->queryAllRecords($sql);

foreach($records as $rec) {
        //$yesterday = date('Ymd',time() - 86400);
        $yesterday = date('Ymd',strtotime("-1 day", time()));
        $logfile = escapeshellcmd($rec['document_root'].'/log/'.$yesterday.'-access.log');
        if(!@is_file($logfile)) {
                $logfile = escapeshellcmd($rec['document_root'].'/log/'.$yesterday.'-access.log.gz');
                if(!@is_file($logfile)) {
                        continue;
                }
        }

        $domain = escapeshellcmd($rec['domain']);
        $statsdir = escapeshellcmd($rec['document_root'].'/web/stats');
        $webalizer = '/usr/bin/webalizer';
        $webalizer_conf_main = '/etc/webalizer/webalizer.conf';
        $webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf');

        if(is_file($statsdir.'/index.php')) unlink($statsdir.'/index.php');

        if(!@is_file($webalizer_conf)) {
                copy($webalizer_conf_main,$webalizer_conf);
        }

        if(@is_file($webalizer_conf)) {
                setConfigVar($webalizer_conf, 'Incremental', 'yes');
                setConfigVar($webalizer_conf, 'IncrementalName', $statsdir.'/webalizer.current');
                setConfigVar($webalizer_conf, 'HistoryName', $statsdir.'/webalizer.hist');
        }


        if(!@is_dir($statsdir)) mkdir($statsdir);
        exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile");
}


till 19th November 2012 08:29

Most likely the timezone setting in /usr/local/ispconfig/server/lib/config.inc.php is wrong. Change it to match your timezone.

TKoos 19th November 2012 09:42

Hi! Thanks for your answer.

When I accessed the correct server I found the TimeZone settings. :-)

However changing 'UTC' to 'UTC+1' was wrong, how should it be written?

changed row:
$conf['timezone'] = 'UTC+1';

error message:
PHP Notice: date_default_timezone_set(): Timezone ID 'UTC+1' is invalid in /usr/local/ispconfig/server/lib/app.inc.php on line 32
finished.


Best regards,

TKoos


Quote:

Originally Posted by till (Post 288471)
Most likely the timezone setting in /usr/local/ispconfig/server/lib/config.inc.php is wrong. Change it to match your timezone.


till 19th November 2012 10:36

The config.inc.php file contains a link to the timezone list in the comment of this setting were the names of all timezones available in php are listed.

TKoos 19th November 2012 11:05

Quote:

Originally Posted by till (Post 288474)
The config.inc.php file contains a link to the timezone list in the comment of this setting were the names of all timezones available in php are listed.

Great! Now I've got it right.

If anyone else has the same problem there is a list of the availble timezones here:
http://www.php.net/manual/en/timezones.europe.php


All times are GMT +2. The time now is 03:30.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, vBulletin Solutions, Inc.