Sqltutor - instalace: Porovnání verzí

Z GeoWikiCZ
 
(Není zobrazeno 67 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
{{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
* 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, který budeme označovat SQLtutor.


mkdir SQLtutor
Instalace Sqltutora se skládá ze dvou kroků
cd    SQLtutor


Pokud se moduly sqltutor a sqlquiz nenacházejí ve společném adresáři, je nutno upravit Makefile modulu sqlquiz (nastavit proměnnou TUTOR).
* 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 Deban/GNU Linux.
;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].


== Překlad a instalace programu sqltutor ==
== Překlad a instalace programu sqltutor ==
Řádek 19: Řá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 knihovnu libpqxx-dev  
* C++ hlavičkové soubory knihovny libpqxx-dev  


  apt-get install postgresql postgresql   
  apt-get install postgresql postgresql   
  apt-get install libpqxx libpqxx-dev
  apt-get install libpqxx libpqxx-dev


Zdrojové texty sqltutor si stahnete z http://sqltutor.fsv.cvut.cz/archive/, uložíte do SQLtutor a rozbalíte
=== Git ===
 
Zdrojové texty [http://savannah.nongnu.org/projects/sqltutor sqltutor] si stáhnete z anonymního [[Git]] serveru


  cd SQLtutor
  git clone git://git.savannah.gnu.org/sqltutor.git
tar xvzf sqltutor-0.03.05.tar.gz


Přejmenujte vytvořený adresář na sqltutor, přejdete do něj 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ř.


  mv sqltutor-0.03.05 sqltutor
   cd 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ř.
=== 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
 
<pre>
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
</pre>
 
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
  su
  cp sqltutor /usr/lib/cgi-bin
  make install
 
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ř.


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).
<nowiki>http://localhost/cgi-bin/sqltutor</nowiki>


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).
=== Parametry pg_hba.conf ===


== Vytvoření a naplnění databáze sqlquiz ==
Pro přístup k databázi PostgreSQL musí být nastaveny korektní hodnoty v souboru <code>pg_hba.conf</code>. 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 <code>pg_hba.conf</code> mimo jiné obsahuje implicitní parametry


Musíte mí nainstalován databázový system [[Instalace a správa PostgreSQL|PostgreSQL]]
<pre>
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


1. vytvořte databázi
# "local" is for Unix domain socket connections only
su
local  all        all                              ident sameuser
su - postgres
# IPv4 local connections:
createdb sqlquiz
host    all        all        127.0.0.1/32          md5
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í).
# IPv6 local connections:
createuser -D -R wwwquiz
host    all        all        ::1/128              md5
psql
</pre>
ALTER USER wwwquiz WITH PASSWORD 'krok';
 
Umístění souboru <code>pg_hba.conf</code> je závislé na distribuci, obvykle
<code>/etc/postgresql/verze_postgresu/main/pg_hba.conf</code>.
 
==== Explicitní nastavení ====


3. do souboru /etc/postgresql/main/pg_hba.conf přidejte řádek
Na jiných systémech, např. SuSE GNU/Linux, je nutné implicitní nastavení upravit a do souboru souboru <code>pg_hba.conf</code> přidat řádek


  local all all md5
  local all all md5


4. Pokud již není vytvořen v databázi template1, vytvoříte v databázi sqlquiz jazyk PL/PGSQL
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
  su
povolit pouze pro aplikaci SQLtutor (zvýšení bezpečnosti), je možné psát explicitně
  su - postgres
 
  psql wwwquiz
local sqlquiz wwwquiz md5
  sqlquiz=> CREATE LANGUAGE plgqsql;
 
== 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)


Přejděte do adresáře SQLtutor, vytvořte podadresář sqlquiz, stáhněte si z adresy http://sqltutor.fsv.cvut.cz/archive/ zdrojové texty příkladů databáze sqlquiz, rozbalte tarball a zadejte příkaz make
<pre>
Sqltutor database name    ? sqltutor
Sqltutor WWW  user        ? sqlquiz
Sqltutor WWW  user password? sqlkrok
Sqltutor EXEC user        ? sqlexec
Sqltutor EXEC user password? sqlkrok
</pre>


cd SQLtutor 
adresáře kam se sqltutor nainstaluje (vyžaduje právo zápisu)
mkdir sqlquiz
cd sqlquiz
tar xvzf sqlquiz-2008-MM-DD.tar.gz 
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.)
<pre>
The directory for installing  CGI  binaries    ? /usr/lib/cgi-bin
The directory for installing Info documentation? /usr/share/info
</pre>


Ve webovém prohlížeči na příslušné adrese zadáte program sqltutor a můžete začít řešit testy.
a volitelně zapneme podporu pro PostGIS (y)


== Administrace ==
<pre>
Do you want to enable PostGIS extension? (y/n) : n
</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 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>


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


-----------
== Související články ==
'''Testovano pro'''


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

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.