Sqltutor - instalace

Instalaci programu sqltutor a databáze příkladů sqlquiz tvoří dva hlavní kroky
- překlad a instalace programu sqltutor
- vytvoření a naplnění databáze sqlquiz
Každý z modulů sqltutor a sqlquiz je umístěn do vlastního podadresáře stejného jména, implicitně se předpokládá, že jsou oba umístěny v jednom společném adresáři.
Pokud se moduly sqltutor a sqlquiz nenacházejí ve společném adresáři, je nutno upravit Makefile modulu sqlquiz (nastavit proměnnou TUTOR).
- Poznámka
- Pokud není řečeno jinak, jsou všechny následující příklady převzaty z prostředí OS Debian/GNU Linux.
Překlad a instalace programu sqltutor
Musíte mít nainstalován následující software a knihovny
- web server s podporou CGI skriptů (např. Apache)
- kompilator g++ a program autoconf
- C++ knihovnu libpqxx pro připojení k databázi PostgreSQL
- C++ hlavičkové soubory knihovny libpqxx-dev
apt-get install postgresql postgresql apt-get install libpqxx libpqxx-dev
CVS
Zdrojové texty sqltutor si stahnete z anonymního CVS serveru
cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/sqltutor co sqltutor
Přejdete do vytvořeného podadresáře sqltutor a zadáte příkazy ./configure a make
cd sqltutor/sqltutor ./configure make
Před spuštěním příkazu ./configure můžete explicitně nastavit parametry překladu, např.
export CXXFLAGS=
Pokud máte nainstalované všechny potřebné knihovna a překlad a sestavení programu proběhne bez chyb, nakopírujte program sqltutor do adresáře pro který máte povoleno spouštění CGI skriptů, např.
su cp sqltutor /usr/lib/cgi-bin
Ověřte, že adresu na které je program umístěn, tj. CGI skript sqltutor, lze spustit z webového prohlížeče (úvodní dialogový panel nevyžaduje připojení k databázi).
Pokud chcete program sqltutor instalovat na veřejně přístupný server, musíte před jeho překladem změnit přístupové heslo k databázi v souboru settings.cpp (nastavení parametru db_connection).
Změna jména databáze, uživatele a hesla
Pokud má být sqltutor nainstalován na veřejném serveru, nastavete hodnoty proměnných DBNAME, DBUSER a PASSWD ve skriptu install-tutor.sh
DBNAME=xxxxxx DBUSER=yyyyyy PASSWD=zzzzzz # su - # su - postgresql # ALTER USER $DBUSER WITH PASSWORD '$PASSWD';" cd sqltutor/sqltutor rm -f settings.cpp cvs update -dPA sed -i /^T\ SQLtutor::db_connection/s/sqlquiz/$DBNAME/ settings.cpp sed -i /^T\ SQLtutor::db_connection/s/wwwquiz/$DBUSER/ settings.cpp sed -i /^T\ SQLtutor::db_connection/s/krok/$PASSWD/ settings.cpp make && cp -v sqltutor /usr/lib/cgi-bin/sqltutor
Skript přeedituje zdrojový text, přeloží program sqltutor a nakopíruje jej do adresáře cgi-bin.
Vytvoření a naplnění databáze sqlquiz
Musíte mí nainstalován databázový system PostgreSQL
1. vytvořte databázi
su su - postgres createdb sqlquiz
2. založte uživatele pro www přístup a nastavte mu heslo (uživatel by neměl mít oprávnění pro vytváření další rolí a databází).
createuser -D -R wwwquiz psql ALTER USER wwwquiz WITH PASSWORD 'krok';
3. Pokud již není vytvořen v databázi template1, vytvoříte v databázi sqlquiz jazyk PL/PGSQL
su su - postgres psql wwwquiz sqlquiz=> CREATE LANGUAGE plgqsql;
Přejděte do zdrojového adresáře příkladů a zadejte příkaz make
cd sqltutor/sqlquiz/cs/gi_ctu make
Makefile v modulu sqlquiz se odvolává na soubory z modulu sqltutor (vytvořní tabulek, nastavení přístupových práv, úložná procedura pro výběr další otázky, atd.)
Ve webovém prohlížeči na příslušné adrese zadáte program sqltutor a můžete začít řešit testy.
Parametry pg_hba.conf
Pro přístup k databázi PostgreSQL je nutné nastavit korektní hodnoty do souboru pg_hba.conf (umístění tohoto souboru je závislé na distribuci, obvykle: /etc/postgresql/verze_postgresu/main/pg_hba.conf). Soubor pg_hba.conf by měl obsahovat následující řádku
host all all 127.0.0.1/32 md5
jestliže hodláme povolit přístup přes TCP/IP z lokálního počítače pro všechny existující uživatele s heslem. V případě, že hodláme tento přístup povolit pouze pro aplikaci SQLtutor (zvýšení bezpečnosti), je možné psát
local sqlquiz wwwquiz md5
Pod OS Debian GNU/Linux není pro zpřístupnění databáze určené pouze pro práci na lokálním počítači nic nastavovat. Soubor /etc/postgresql/8.1/main/pg_hba.conf mimo jiné obsahuje implicitní parametry
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident sameuser # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Na jiných systémech (např. SuSE GNU/Linux) je nutné implicitní nastavení upravit a do souboru souboru /etc/postgresql/main/pg_hba.conf přidat řádek
local all all md5
Administrace
Program sqltutor v podstatě žádnou administraci nevyžaduje. Informace o spouštěných testech a záznamy o zadaných otázkách a odpovědích jsou ukládány v tabulkách sessions a sessions_answers.
- Testovano pro
- sqltutor-0.03.06.tar.gz
- sqlquiz-2008-04-16.tar.gz
- GNU autoconf 2.61
- GNU g++ 4.1.2
- postgresql-8.1
- libpqxx-2.6.8
- OS Debian/GNU Linux (etch).
Pokud vaše instalace nespouští server Apache (nebo jiný web server) automaticky, musíte jej pochopitelně spustit explicitně dřív, než začnete používat program sqltutor.