I keď je databázový server PostgreSQL napísaný pre Unix-like operačné systémy, existuje niekoľko možností ako ho používať aj na platforme MS Windows. Jednou z týchto možností je softvér Cygwin, ktorého postup inštalácie s databázou Postgres nájdete v tomto článku.

V prvom kroku je potrebné navštíviť stránku www.cygwin.com, odkiaľ si stiahneme súbor setup.exe, ktorý nám poslúži na download potrebných súborov (packages). Po jeho spustení máme na výber inštalovať priamo z internetu, alebo si najskôr uložiť súbory na disk a inštalovať odtiaľto neskôr. Ja som zvolil druhú možnosť, ako mirror som zvolil ftp.tuke.sk. V dobe písania článku bola posledná release verzia Cygwin DLL 1.3.22-1.

Cygwin - Logo

Druhým krokom je navolenie súborov potrebných pre inštaláciu Postgres (Select Packages). Okrem defaultného nastavenia (všetky súbory zo zložky Base) vyberieme zo zložky Database súbor postgresql.

Cygwin - Select Packages

Okrem súborov zo zložky Base sú defaultne vybrané aj ďalšie binárne súbory, ktoré sú potrebné k súborom z Base. Rozbaľovanie zložiek sa robí cez znak „+“ a kliknutím na príslušnú vlastnosť vyberáme, či chceme binárny súbor, verziu, atď.

Po úspešnom downloade (12 MB), prípadne inštalácii, sa po spustení objaví okno podobné prostrediu Unix. Budú nám fungovať nástroje, ktoré sme si zvolili pri inštalácii, napríklad príkaz ls (výpis súborov).

Cygwin - príkaz ls (výpis súborov)

Okrem uvedenej inštalácie potrebujeme Cygwin doplniť o ipc-daemon, z adresy http://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/index.html, v dobe písania článku verziou cygipc-1.14-1.tar.bz2 (2003-05-17).

bunzip2 -c /cygipc-1.11-1.tar.bz2 | tar xvf -

Súbor je potrebné rozbaliť priamo v Cygwin, alebo Total Commander (Windows Commander) doplniť o plugin archívu bz2 zo stránky http://www.ghisler.com/plugins.htm a adresár usr nakopírovať priamo do Cygwin adresára. Plugin nám umožní prezeranie obsahu jednotlivých súborov (packages).

Spustenie PostgreSQL – postup spustenia (pre NT,2000,XP aj ako Services – potom je potrebný aj download cygrunsrv) nájdete po nainštalovaní Cygwin v súbore c:cygwinusrdocCygwinpostgresql-7.3.2.README (ak c:cygwin je cieľový adresár inštalácie). V nasledujúcich krokoch ukážem spôsob pripojenia k PostgreSQL, ak je PHP s Apache nainštalované taktiež pod Windows. Uvedený postup mám odskúšaný na Windows 9x,2000,XP.

Cygwin - spustenie PostgreSQL
Cygwin – spustenie PostgreSQL (plná veľkosť)

Screenshot zobrazuje tieto kroky:

  • ipc-daemon &
  • initdb -D /usr/share/postgresql/data
  • postmaster -i -D /usr/share/postgresql/data & alebo pg_ctl start -D /usr/share/postgresql/data -o „-i“

Parametere:

  • -i umožňuje klientom pripájať sa cez TCP/IP pripojenia, bez tejto možnosti sú akceptované iba ‚local unix domain sockets‘ pripojenia. Bez tohto parametra bude PHP vypisovať chybu: Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Is the server running on host localhost and accepting TCP/IP connections on port 5432?
  • & proces beží na pozadí
    • Po výpise o úspešnom spustení démona postmaster je potrebné pre návrat do príkazového riadku stlačiť Enter.

      Spolu s PostgreSQL máme nainštalovaného aj riadkového klienta psql. Pomocou príkazu createdb vytvoríme databázu pokusnadb. Parameter -l v psql slúži na výpis všetkých databáz.

      Cygwin - createdb

      Ďalej cez psql otvoríme databázu pokusnadb a vytvoríme v nej tabuľku Zam, do ktorej vložíme dva záznamy.

      Cygwin - psql pokusnadb

      Pripojenie k PostgreSQL z PHP – ukážka skriptu s pripojením k databáze pokusnadb s výpisom záznamov tabuľky Zam:

      <?php
      $db = pg_connect („host=localhost dbname=pokusnadb“) or die(„Chyba pri pripojení k DB !“);
      $qu = pg_query ($db, „SELECT * FROM Zam“);
      echo pg_dbname($db).“:<hr />n“;
      while ($data = pg_fetch_array ($qu))
        echo $data[0].“, „.$data[1].“n“;
      pg_close($db);
      ?>

      Výsledok PHP skriptu v prehliadači:

      Výpis z prehliadača

      Ukončenie PostgreSQL:

      • pg_ctl stop -D /usr/share/postgresql/data

      Ukončenie ipc démona:

      • najskôr zistíme PID procesu pre ipc-daemon cez príkaz „ps -f“
      • cez „kill PID“ ukončíme ipc-daemon

      Ukončenie Cygwin:

      • Ctrl+D, „exit“, alebo „logout“

      Cygwin - ukončenie PostgreSQL
      Cygwin – ukončenie PostgreSQL (plná veľkosť)

      Pri opätovnom spúšťaní Postgresu vynechávame príkaz initdb, spúšťame len ipc-daemon a postmaster (pg_ctl). Pre pohodlnú prácu s databázami si môžeme stiahnuť klienta phpPgAdmin z http://phppgadmin.sourceforge.net.

      Ďalšie možnosti inštalovania PostgreSQL na platforme Windows nájdete na stránke Techdocs v2 – PostgreSQL on Windows, z uvedených som vyskúšal ešte UltraSQL by PeerDirect, ktorý je ‚nadstavbou‘ Cygwin, pri ktorom by malo odpadnúť namáhavé spúšťanie cez príkazový riadok. Ak chcete tento softvér vyskúšať, nezabudnite si predtým odinštalovať Cygwin, inak riskujete miešanie jednotlivých nastavení.

      Ako tip na záver doporučujem odskúšať program VMWare Workstation, ktorý umožňuje mať na počítači spustených viac virtuálnych počítačov s rôznymi operačnými systémami. Čo znamená, že v okne pobeží napr. Linux s nainštalovaným PostgreSQL a cez PHP sa k nemu pripojíme ako k SQL serveru so svojou vlastnou IP adresou. VMWare je náročný na pamäť, jedná sa v podstate o ďalší počítač a z RAM si napr. pre Mandrake Linux zobere 160MB. VMWare Workstation nájdete na stránke http://www.vmware.com, kde je k dispozícii v Downloade 30-dňová skúšobná verzia.

      Starší komentáře ke článku

      Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět