OpenStats - instalace a nastavení

Instalace a konfigurace knihovny OpenStats sestává z několika celkem jednoduchých kroků - podívejme se na ně trochu podrobněji.

Hlavní kroky instalace logovací knihovny jsou:

Stažení a instalace zdrojových kódů

Veškeré zdrojové kódy jsou ke stažení na sf.net, na stránkách projektu. Dostupný je buď kompletní balíček zahrnující všechny součásti projektu (logovací, analytickou a reportovací knihovnu, dokumentaci, unit testy, atd.) nebo balíčky pro jednotlivé části.

Stáhněte kompletní balíček (openstats-full-xxx.zip) a rozbalte ho - vznikne adresář openstats-xxx s následující strukturou:

  • README - soubor se základními informacemi o projektu
  • LICENSE - licenční ujednání (GPL v. 2)
  • cron - skripty používané pro zpracování sesbíraných dat
  • doc - dokumentace (popis API ve stylu javadoc, příklady, apod.)
  • gui - webové rozhraní pro zobrazování vygenerovaných reportů
  • lib - zdrojové kódy knihoven
  • misc - užitečné skripty (vytváření testovacích dat, benchmarking, apod.)
  • sql - skripty potřebné pro vytvoření DB struktur (tabulky, indexy, triggery, ...)
  • test - unit testy

Pro fungování knihovny je potřebný pouze obsah adresářů "lib" a "sql" ve kterých jsou umístěny potřebné zdrojové soubory (zde uvedený seznam nemusí být úplný) a soubory potřebné pro vytvoření DB struktury (viz. následující oddíl):

  • openstats_db.php
  • openstats_db_resultset.php
  • openstats_logging.php
  • openstats_analysis.php
  • openstats_reporting.php

Tyto soubory je třeba nakopírovat do adresáře umístěného v include_path - osobně doporučuji nemíchat je s dalšími knihovnami, tj. vytvořit nový adresář ve kterém budou umístěny pouze tyto soubory a doplnit ho do include_path.

Pro práci s knihovnou potom stačí načíst pouze hlavní soubor (například openstats_logging.php pro logování), který už si sám automaticky načte všechny potřebné soubory:

<?php

    // načtení potřebných knihoven
    require_once('openstats/openstats_logging.php');

    ... všechny potřebné soubory jsou načteny ...

?>

Vytvoření DB tabulek, triggerů, ...

Adresář "sql" obsahuje definici všech databázových entit - tabulek, indexů, apod. Pro každou tabulku existuje v adresáři "tables" samostatný adresář se všemi potřebnými skripty (vytvoření, vložení výchozích dat, vytvoření indexů a cizích klíčů, apod.). Nemusíte je samozřejmě spouštět jeden po druhém - stačí spustit shellový skript build.sh umístěný přímo v adresáři "sql" který vytvoří následující SQL soubory:

  • create.sql - vytvoření tabulek
  • insert.sql - vložení výchozích dat
  • index.sql - vytvoření dalších indexů nad tabulkami
  • alter.sql - vytvoření cizích klíčů

Skripty je třeba spouštět v uvedeném pořadí.

Stejně jako v případě PHP knihoven doporučuji nemíchat aplikační tabulky s tabulkami pro OpenStats (už proto že mohou existovat tabulky se stejnými jmény), tj. nejlepší je použít samostatné schéma nebo zcela oddělenou databázi (klidně i na jiném stroji).

$ createdb -U postgres openstats
$ createlang -U postgres plpgsql openstats
$ createuser -U postgres openstats
$ psql -U openstats < create.sql

Tím je instalace DB části dokončena.

Poznámka: Má-li váš projekt vysokou návštěvnost, je dobré již při vytváření struktury uvažovat o několika možnostech optimalizace struktury DB. Například tři hlavní tabulky (Sessions, Actions a Parameters) mohou poměrně rychle růst, a jejich umístěním do samostatného TABLESPACE (resp. na samostatný disk) nic nezkazíte - logování statistik nebude kolidovat s ostatními I/O operacemi, atd.

V případě že jste tabulky vytvořili v samostatném schématu, věnujte prosím pozornost následující kapitole.

Potřebná nastavení

Jediná drobná komplikace vzniká pokud jste databázovou strukturu vytvořili v samostatném schématu - je třeba zajistit aby PHP knihovna a triggery byly schopny najít správné tabulky. To lze zajistit buď vhodným nastavením parametru search_path v PostgreSQL (ale opatrně, můžete tím narušit chování vaší aplikace), nebo pomocí konstanty OPENSTATS_SCHEMA na název použitého schématu:

<?php

    // nastavení OPENSTATS_SCHEMA na název schématu
    define('OPENSTATS_SCHEMA', 'openstats');

?>

Funkce v knihovně poté před provedením SQL dotazu automaticky nastaví toto schéma a na konci zase nastaví původní (to samé ale samozřejmě můžete provést i sami).

Komentáře

K tomuto článku zatím žádné komentáře neexistují (nebo čekají na schválení).

Nový komentář

Všechny komentáře podléhají schválení - mezi odesláním komentáře a jeho zobrazením na této stránce tedy může být prodleva. Vyplníte-li e-mailovou adresu, budete o schválení či neschválení komentáře informováni.

V titulku ani v textu nejsou povoleny HTML tagy - budou automaticky odstraněny. Odstavec ukončíte prázdným řádkem.

(nepovinné)