Sqltutor - instalace: Porovnání verzí

Z GeoWikiCZ
Řádek 107: Řádek 107:
=== Parametry pg_hba.conf ===
=== 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 řádku  
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  


<pre>
<pre>
Řádek 114: Řádek 114:


v případě ž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
v případě ž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, je možné psát  
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
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
Řádek 132: Řádek 133:
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
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 sqlquiz wwwquiz md5
  local all all md5


== Administrace ==
== Administrace ==

Verze z 10. 5. 2008, 12:52

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

v případě ž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.