Sqltutor - instalace: Porovnání verzí

Z GeoWikiCZ
 
(Není zobrazeno 42 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
{{Databáze}}
{{Databáze}}{{Upravit}}
 
[[Soubor:Sqltutor-1.png|250px|right]]
[[Soubor:Sqltutor-1.png|250px|right]]
Instalaci programu '''sqltutor''' a databáze příkladů '''sqlquiz''' tvoří dva hlavní kroky


* překlad a instalace programu sqltutor
Instalace Sqltutora se skládá ze dvou kroků
* vytvoření a naplnění databáze sqlquiz


Každý z modulů sqltutor a sqlquiz je umístěn do vlastního
* překlad a instalace programu '''sqltutor'''
podadresáře stejného jména, implicitně se předpokládá, že jsou oba umístěny v jednom společném adresáři.
* vytvoření a naplnění databáze příkladů


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 [http://www.debian.org Debian/GNU Linux].
 
;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 ==
== Překlad a instalace programu sqltutor ==
Řádek 17: Řádek 14:
Musíte mít nainstalován následující software a knihovny
Musíte mít nainstalován následující software a knihovny


* web server s podporou CGI skriptů (např. Apache)
* web server s podporou CGI skriptů (např. [http://www.apache.org Apache])
* kompilator g++ a program autoconf
* kompilator [http://directory.fsf.org/project/gpp/ g++] a program [http://www.gnu.org/software/autoconf/ autoconf]
* C++ knihovnu libpqxx pro připojení k databázi PostgreSQL
* C++ knihovnu [http://pqxx.org/development/libpqxx/ libpqxx] pro připojení k databázi [[PostgreSQL]]
* C++ hlavičkové soubory knihovny libpqxx-dev  
* C++ hlavičkové soubory knihovny libpqxx-dev  


Řádek 25: Řádek 22:
  apt-get install libpqxx libpqxx-dev
  apt-get install libpqxx libpqxx-dev


=== CVS ===
=== Git ===


Zdrojové texty [http://savannah.nongnu.org/projects/sqltutor sqltutor] si stahnete z anonymního CVS serveru
Zdrojové texty [http://savannah.nongnu.org/projects/sqltutor sqltutor] si stáhnete z anonymního [[Git]] serveru


  cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/sqltutor co sqltutor
  git clone git://git.savannah.gnu.org/sqltutor.git


Přejdete do vytvořeného podadresáře sqltutor a zadáte příkazy ./configure a make
Přejdete do vytvořeného adresáře 'sqltutor', vytvoříte konfigurační skript pomocí <tt>autogen.sh</tt> a poté zadáte příkazy <tt>configure</tt> a <tt>make</tt>, např.


   cd sqltutor/sqltutor
   cd sqltutor
   ./configure
  ./autogen.sh
   ./configure --bindir=/usr/lib/cgi-bin --infodir=/usr/share/info
   make
   make


Před spuštěním příkazu ./configure můžete explicitně nastavit parametry překladu, např.
Před spuštěním příkazu <tt>./configure</tt> můžete explicitně nastavit parametry překladu, např.


  export CXXFLAGS=
  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 ===
=== Změna jména databáze, uživatele a hesla ===
Řádek 77: Řádek 66:
Skript přeedituje zdrojový text, přeloží program sqltutor a nakopíruje jej do adresáře cgi-bin.
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 ==
=== Instalace a inicializace databáze ===


Musíte nainstalován databázový system [[Instalace a správa PostgreSQL|PostgreSQL]]
Musíte mít nainstalován databázový systém [[PostgreSQL]]. Nejprve databázi vytvoříme


1. vytvořte databázi
  createdb sqltutor
  su
 
su - postgres
Pokud překlad a sestavení programu proběhlo v pořádku můžete sqltutora nainstalovat (včetně inicializace databáze) příkazem
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
  su - postgres
  make install
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
Ověřte, že adresu na které je program umístěn, tj. CGI skript <tt>sqltutor</tt>, lze spustit z webového prohlížeče (úvodní dialogový panel nevyžaduje připojení k databázi), např.
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.)
<nowiki>http://localhost/cgi-bin/sqltutor</nowiki>
 
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 ===
=== Parametry pg_hba.conf ===
Řádek 134: Řádek 110:
  local sqlquiz wwwquiz md5
  local sqlquiz wwwquiz md5


== Administrace ==
== Instalace datasetů ==
 
Oficiální datasety pro Sqltutor jsou dostupné v Git repozitáři GNU
 
git clone git://git.sv.gnu.org/sqltutor/datasets.git
 
Nejprve provedeme konfiguraci
 
cd sqltutor-datasets
./autogen.sh
./configure
 
Pro nainstalování datasetů pro [[PostGIS]]
 
./configure --enable-postgis
 
V tomto případě musí být databáze [[PostGIS#Vytvoření databáze|vytvořena]] s rozšířením PostGIS
 
Datasety nainstalujeme příkazem
 
make install
 
== Krok za krokem: instalace pomocí sqltutor-install.sh ==
 
git clone git://git.savannah.gnu.org/sqltutor.git
git clone git@geo.fsv.cvut.cz:sqltutor-datasets datasets
ln -sf sqltutor/sqltutor-install.sh .
 
./sqltutor-install.sh
 
Nejprve definujeme cesty ke Git repozitářům
 
<pre>
GNU Sqltutor installer v. 1.0
=============================
 
To install sqltutor you must have git repositories for sqltutor and
datasets and tutorials ready.
 
  $ git clone git://git.savannah.gnu.org/sqltutor.git
  $ git clone git://git.sv.gnu.org/sqltutor/datasets.git
 
Where is sqltutor git repository? ./sqltutor
Where is datasets git repository? ./datasets
</pre>
 
dále nastavíme databázi (název, uživatele, hesla)
 
<pre>
Sqltutor database name    ? sqltutor
Sqltutor WWW  user        ? sqlquiz
Sqltutor WWW  user password? sqlkrok
Sqltutor EXEC user        ? sqlexec
Sqltutor EXEC user password? sqlkrok
</pre>
 
adresáře kam se sqltutor nainstaluje (vyžaduje právo zápisu)
 
<pre>
The directory for installing  CGI  binaries    ? /usr/lib/cgi-bin
The directory for installing Info documentation? /usr/share/info
</pre>
 
a volitelně zapneme podporu pro PostGIS (y)
 
<pre>
Do you want to enable PostGIS extension? (y/n) : n
</pre>
 
V tomto případě ještě definujeme cestu k PostGIS inicializačním SQL dávkám
 
<pre>
The PostGIS directory? /usr/share/postgresql/8.4/contrib/postgis-1.5
</pre>


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.
V následujících krocích se sqltutor nakonfiguruje, zkompiluje a nainstaluje včetně všech dostupných datasetů.


;Testovano pro:
== Související články ==
* 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.
* [[B870 - instalace SQLtutor|skript]] pro instalaci sqltutor v učebně B 870.

Aktuální verze z 31. 10. 2010, 15:26

Instalace Sqltutora se skládá ze dvou kroků

  • překlad a instalace programu sqltutor
  • vytvoření a naplnění databáze příkladů
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

Git

Zdrojové texty sqltutor si stáhnete z anonymního Git serveru

git clone git://git.savannah.gnu.org/sqltutor.git

Přejdete do vytvořeného adresáře 'sqltutor', vytvoříte konfigurační skript pomocí autogen.sh a poté zadáte příkazy configure a make, např.

 cd sqltutor
 ./autogen.sh
 ./configure --bindir=/usr/lib/cgi-bin --infodir=/usr/share/info
 make

Před spuštěním příkazu ./configure můžete explicitně nastavit parametry překladu, např.

export CXXFLAGS=

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.

Instalace a inicializace databáze

Musíte mít nainstalován databázový systém PostgreSQL. Nejprve databázi vytvoříme

createdb sqltutor

Pokud překlad a sestavení programu proběhlo v pořádku můžete sqltutora nainstalovat (včetně inicializace databáze) příkazem

su
make install

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), např.

http://localhost/cgi-bin/sqltutor

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

Instalace datasetů

Oficiální datasety pro Sqltutor jsou dostupné v Git repozitáři GNU

git clone git://git.sv.gnu.org/sqltutor/datasets.git

Nejprve provedeme konfiguraci

cd sqltutor-datasets
./autogen.sh
./configure

Pro nainstalování datasetů pro PostGIS

./configure --enable-postgis

V tomto případě musí být databáze vytvořena s rozšířením PostGIS

Datasety nainstalujeme příkazem

make install

Krok za krokem: instalace pomocí sqltutor-install.sh

git clone git://git.savannah.gnu.org/sqltutor.git
git clone git@geo.fsv.cvut.cz:sqltutor-datasets datasets
ln -sf sqltutor/sqltutor-install.sh .
./sqltutor-install.sh

Nejprve definujeme cesty ke Git repozitářům

GNU Sqltutor installer v. 1.0
=============================

To install sqltutor you must have git repositories for sqltutor and
datasets and tutorials ready.

   $ git clone git://git.savannah.gnu.org/sqltutor.git
   $ git clone git://git.sv.gnu.org/sqltutor/datasets.git

Where is sqltutor git repository? ./sqltutor
Where is datasets git repository? ./datasets

dále nastavíme databázi (název, uživatele, hesla)

Sqltutor database name     ? sqltutor
Sqltutor WWW  user         ? sqlquiz
Sqltutor WWW  user password? sqlkrok
Sqltutor EXEC user         ? sqlexec
Sqltutor EXEC user password? sqlkrok

adresáře kam se sqltutor nainstaluje (vyžaduje právo zápisu)

The directory for installing  CGI  binaries    ? /usr/lib/cgi-bin
The directory for installing Info documentation? /usr/share/info

a volitelně zapneme podporu pro PostGIS (y)

Do you want to enable PostGIS extension? (y/n) : n

V tomto případě ještě definujeme cestu k PostGIS inicializačním SQL dávkám

The PostGIS directory? /usr/share/postgresql/8.4/contrib/postgis-1.5

V následujících krocích se sqltutor nakonfiguruje, zkompiluje a nainstaluje včetně všech dostupných datasetů.

Související články

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