Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Spesta — винтажная система статистики

Выкинул гугловский «Урчин» и поставил смирновскую «Спесту». Все эти Flash-графики у «Гугла» — это очень красиво, но мне не нравится смотреть по нескольку минут на процесс загрузки, а время дорого. Тем более, что большинство инструментов, которые предоставляет эта статистика, мне не нужны, я туда даже не заглядываю.

Четыре совета, если будете ставить «Спесту».

Во-первых, Дима писал её в бородатые времена, так что для работы на нормальном хостинге она требует влюченного register_globals и выключенного error_reporting. В Apache, в файле .htaccess это делается так:

php_flag error_reporting off
php_flag register_globals on

Во-вторых, откройте файл index.php, найдите строку 162 (там выводится значение ТИЦ, в этой строке должно быть слово cycounter), после этой строки добавьте:

echo "<b>Google</b>:<br /><br />
<script language='JavaScript'
src='http://www.mipagerank.com/mipagerank.php/$hosturl?d=2'></script>";

Теперь вы сможете видеть ещё и PageRank вашего сайта.

Совет номер три. Откройте counter.php, найдите строку 150, там определяется IP человека, который к вам зашёл. Определяется несколько… некорректно, да и считает всех с одного IP за одного человека. Чтобы хоть как-то поправить это положение, впишите туда следующее, вместо кода определения IP-адреса:

$ip = $_SERVER['REMOTE_ADDR'];
$fields = array
(
    'HTTP_X_FORWARDED_FOR', 'CLIENT_IP', 'HTTP_FROM', 'HTTP_CLIENT_IP', 'HTTP_CLIENTIP',
    'HTTP_CLIENT', 'HTTP_X_FORWARDED', 'HTTP_X_DELEGATE_REMOTE_HOST', 'HTTP_SP_HOST',
);

foreach ($fields as $field)
if (isset($_ENV[$field]))
{
    $ip .= ' '.$_ENV[$field];
    break;
}

$fields = array
(
        'HTTP_USER_AGENT', 'HTTP_ACCEPT_LANGUAGE', 'HTTP_ACCEPT_CHARSET',
        'HTTP_ACCEPT_ENCODING', 'HTTP_TE', 'HTTP_UA_CPU', 'HTTP_UA_OS', 'HTTP_UA_COLOR',
        'HTTP_UA_PIXELS', 'HTTP_UA_VOICE',
);

$uniq = '';
foreach ($fields as $field)
if (isset($_SERVER[$field])) $uniq .= '~'.$_SERVER[$field];

$ip .= ' ('.md5($uniq).')';

Четвёртый совет — поставьте flock. Нет, не настройку в конфигурационном файле, она ни на что не влияет. Если умеете — поставьте вызов flock после каждого fopen. Если не умеете — ну оставьте как есть.

16 комментариев
nudnik.ru 2007

Так, а похвалить?

Евгений Степанищев (bolknote.ru) 2007

Нормально, выкинул статистику Гугла (sic!) и поставил «Спесту», это не похвала? :)

indeyets.livejournal.com 2007

это получается локальная считалка статистики… не интересно
гугл хорош как раз тем что оно считается где-то в другом месте и не отнимает ресурсов сервера
и техсаппортить его не нужно :-)

gofman.livejournal.com 2007

да гавно у гугла статистика.

nudnik.ru 2007

Правильный вариант:

С отвращением выкинул гугловский «Урчин» и с радостью поставил смирновскую «Спесту».

Евгений Степанищев (bolknote.ru) 2007

Индеец, ну, ты зайди к Диме на сайт, там есть демо вход, посмотри на gentime :)

Гофман, гавно, да.

Дим, всё так и было :)

openid.yandex.ru/users/arthas-1 2007

«Спеста» у меня заглючила однажды на «Мастерхосте» на всех доменах разом. Видимо сразу после смены какого-то ПО на сервере. Позже Дима обновил её, я скачал поставил, результат тот же — ошибка 500. Так ничего и не понял, откуда вылезло и почему. Хотя статистка хорошая, пользовался до этого сбоя несколько лет. Может быть подскажете где копать?

Евгений Степанищев (bolknote.ru) 2007

DirectoryIndex из .htaccess попробуйте убрать. Или по одному отключать строки в .htaccess.

openid.yandex.ru/users/arthas-1 2007

Выяснился интересный момент. Прежняя версия «Спесты» (1.3F) оказывается уже работает на «Мастерхосте»! А вот последняя версия не работает. Причём достаточно поменять файл counter.php с версии 1.3 на новый с версии 1.4 и ошибка 500 опять вылезает. То есть есть какая-то проблема в файле counter.php. С .htaccess поигрался по всякому, не помогает.

Евгений Степанищев (bolknote.ru) 2007

Гм. А эта ошибка 500 когда вылезает? Я думал при обращении к любому файлу «Спесты».

openid.yandex.ru/users/arthas-1 2007

Ошибка 500 вылазит при обращении только к двум файлам — counter.php и deny.php. Со всеми остальными файлами проблем никаких. Мне это тоже показалось несколько странным.

Евгений Степанищев (bolknote.ru) 2007

Интересно как. А попробуйте комментировать строку за строкой в deny.php (файл-т о маленький)? Может удасться выяснить что даёт сбой.

recoder.livejournal.com 2007

Комментарий для Евгения Степанищева:

http://www.aboutnico.be/index.php/google-analytics-air-beta-sign-up/ ?

Евгений Степанищев (bolknote.ru) 2007

Комментарий для recoder.livejournal.com:

Это, конечно, забавно, но один минус — гугловская статистика значительно (у меня — в пять раз) отстаёт от той, что на сайте. То ли не успевает догружаться, то ли ещё что. На цифры, в принципе, плевать. Но это значит, что она теряет источники перехода и поисковые фразы.

khotty (openid.yandex.ru/users/khotty) 2008

Удалил все строки из .htaccess
Теперь всё работает.
Вопрос -​-​ нафига они были нужны?

Евгений Степанищев (bolknote.ru) 2008

Чтобы правила rewrite не применялись и чтобы настройки PHP были определённые.