Sqltutor - instalace: Porovnání verzí

Z GeoWikiCZ
Řádek 148: Řádek 148:


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.
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.
=== Odkazy ===
* [[B870 - instalace SQLtutor|skript]] pro instalaci sqltutor v učebně B 870.

Verze z 16. 5. 2008, 17:37

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 -S 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  plpgsql;

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 musí být nastaveny korektní hodnoty v souboru pg_hba.conf. Pod operačním systémem 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 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

Umístění souboru pg_hba.conf je závislé na distribuci, obvykle /etc/postgresql/verze_postgresu/main/pg_hba.conf.

Explicitní nastavení

Na jiných systémech, např. SuSE GNU/Linux, je nutné implicitní nastavení upravit a do souboru souboru pg_hba.conf přidat řádek

local all all 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 explicitně

local sqlquiz wwwquiz 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.

Odkazy

  • skript pro instalaci sqltutor v učebně B 870.