Sqltutor - instalace

Z GeoWikiCZ

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.