Вынужден согласиться что лучше
Цитата:
|
ну и как итог, мне кажется, что анализатор апачевских логов правильно построенный - хранящий сводную статистику в мюскле - это самый оптимальный вариант.
|
просто придумать трудно. Мускул - база все таки как ни как, а базы данных придумали ... ну вобщем придумали и все. А статистику брать из них приприятно и "лекко" =).
Но с вариантом крона вынужден не согласиться. Заставлять сервер чрезмерно "пукать" в определенное время (даже заведомо "слабое" относительно количеству юзеров) не есть гуд. имхо, опять-же. Надо как-нибудь нагрузку десцентрировать.
Предлагаю следующюю схему :
(под *никс)
в хттпд.конф прописать

Код:
# Задать формат. Это стандарт который есть в хттпд.конф последних апачей
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
# И собственно делаем "каку" (pipe)
CustomLog "|/usr/bin/al" combined
# Не забыв за"#"оментировать то что было раньше ... на всякий пожарный
Закончив потрошение .конфы примемся за дело /usr/bin/al
Что это? Это файл выполняемый файл через которого пройдут данные изрыгаемые апачем. Эту роль должен исполнять хорошо настроенный и оптимизированный бинарник. Но я его не дам

Так как "нема"
Но, рассмотрим мы такой вариант :

PHP код:
#!/usr/bin/php
<?
$fh = fopen ("php://stdin", "r");
$rows = fgets($fh, 512); // 256 гета + еще столько же
//Должно типа хватить
fclose($fh);
$fh = fopen ("/var/log/apache/php_generated_log", "a");
fwrite($fh, $rows);
fclose($fh);
?>
проверяем все права
/var/log/apache должен получить для такого случая 777 (что-бы создался php_generated_log).
/usr/bin/al - 755
Теперь можно из промта делать /etc/rc.d/rc.httpd restart или как там у вас...
Что-бы проверить фурычит ли изобретение можно воспользоваться тэйлом
tail -f /var/log/apache/php_generated_log
Если всё прошло успешно это должно привести к тому-же результату что и
tail -f /var/log/apache/access_log
только до сией белиберды.
Я думаю к хостингам (смотря к каким, конечно) это прикрутить будет тоже не сложно. CustomLog - такая-же дериктива виртуального хоста. Главное прописать правильно директории и разобраться с правами.
А туду - изменить пхп-файл что-бы он акуратненько вносил в базу тынных ...
Что бы зделать подобное под виндой ... Просто изменить директориии на знакомые (/var/log/apache на с:\Program Files\Apache Group\Apache\logs например). И в CustomLog-e прописать что нибудь типа
CustomLog "|c:\php\php.exe с:\Program Files\Apache Group\Apache\bin\al.php" combined