Jak zkompilovat PHP modul pro 602SQL

Tento dokument popisuje, jak zkompilovat PHP modul pro 602SQL. Pokud hledáte už sestavený PHP modul, podívejte se na stránky http://www.software602.cz. Naleznete je také na stránkách http://winbase.software602.cz.

Soubory PHP modulu

Budete potřebovat následující soubory, měly by být dodány spolu s tímto dokumentem:
název souborupopis souboru
readme.htmlpopis kompilace PHP modulu (tento soubor)
mod602sql.c
mod602sql.h
php_602sql.h
zdrojové texty PHP modulu
mod602sql.rcinformace o verzi, které se připojují k sestavené dynamické knihovně (.dll) (pouze pro Windows)
php_602sql.makmakefile pro Windows
php_602sql.lmkmakefile pro Linux
602sql8/Makefile.insoubor, ze kterého skript configure vytvoří Makefile (pouze pro Linux) - pro 602SQL 8.x
602sql8/config.m4soubor, který použije skript buildconf (pouze pro Linux) - pro 602SQL 8.x
602sql8/CREDITSsoubor, který obsahuje název PHP modulu a jméno autora (pouze pro Linux) - pro 602SQL 8.x
602sql9/Makefile.insoubor, ze kterého skript configure vytvoří Makefile (pouze pro Linux) - pro 602SQL 9.0
602sql9/config.m4soubor, který použije skript buildconf (pouze pro Linux) - pro 602SQL 9.0
602sql9/CREDITSsoubor, který obsahuje název PHP modulu a jméno autora (pouze pro Linux) - pro 602SQL 9.0
602sql95/Makefile.insoubor, ze kterého skript configure vytvoří Makefile (pouze pro Linux) - pro 602SQL 9.5
602sql95/config.m4soubor, který použije skript buildconf (pouze pro Linux) - pro 602SQL 9.5
602sql95/CREDITSsoubor, který obsahuje název PHP modulu a jméno autora (pouze pro Linux) - pro 602SQL 9.5
602sql10/Makefile.insoubor, ze kterého skript configure vytvoří Makefile (pouze pro Linux) - pro 602SQL 10.0
602sql10/config.m4soubor, který použije skript buildconf (pouze pro Linux) - pro 602SQL 10.0
602sql10/CREDITSsoubor, který obsahuje název PHP modulu a jméno autora (pouze pro Linux) - pro 602SQL 10.0

Další potřebné soubory a programy

602SQL verze 8, 8.1, 9.0, 9.5, nebo 10.0
Musí být nainstalován na počítači, na kterém budete kompilovat PHP modul.
602SQL Extension Pack verze 8, nebo 8.1
Je potřeba pro sestavení PHP modulu pro 602SQL verze 8, resp. 8.1. Obsahuje soubory potřebné pro sestavení aplikací, které spolupracují s 602SQL. Potřebujete hlavičkové soubory wbkernel.h, general.h (jsou součástí SDK pro C/C++) a pro sestavení PHP modulu pro Windows také knihovny 602krnl8.lib a 602prez8.lib.
Podpora pro C/C++ pro 602SQL 9.0, 9.5, nebo 10.0
Je potřeba pro sestavení PHP modulu pro 602SQL verze 9.0, 9.5, resp. 10.0. Obsahuje soubory potřebné pro sestavení aplikací napsaných v jazyku C/C++, které spolupracují s 602SQL. Potřebujete hlavičkové soubory wbkernel.h, general.h a pro sestavení PHP modulu pro Windows také knihovnu 602krnl9.lib (resp. 602krnl95.lib, resp. 602krnl10.lib).
PHP verze 4, nebo verze 5
Musí být nainstalováno na počítači, na kterém budete kompilovat PHP modul včetně nástrojů pro vývoj modulů (hlavičkové soubory, na Windows také knihovna php4ts.lib).
Při kompilování modulu pro Windows budete potřebovat zdrojové texty PHP (obsahují např. hlavičkové soubory, které se includují do modulu) a také binární distribuci PHP pro Win32 (obsahuje knihovnu php4ts.lib, resp. php5ts.lib; alternativně můžete sami sestavit PHP pro Windows ze zdrojových textů).
Microsoft Visual C++ verze 6
Pomocí něj sestavíte PHP modul pro Windows.
gcc, make
Pomocí těchto nástrojů sestavíte PHP modul pro Linux.

Sestavení modulu pro Windows

  1. Soubory PHP modulu zkopírujte do prázdného adresáře (nechť to je c:\php_602sql).
  2. V souboru c:\php_602sql\php_602sql.mak změňte následující údaje:
    název nastavenípopis nastavení
    PHPVERčíslo verze PHP, pro které budete modul sestavovat
    PHPSRCDIRadresář se zdrojovými texty PHP
    PHPLIBDIRadresář s knihovnou php4ts.lib
    SQL602INCDIRadresář s hlavičkovými soubory 602SQL (wbkernel.h, general.h)
    tyto soubory jsou součástí 602SQL Extension Packu (pro 602SQL verze 8.x), resp. Podpory pro C/C++ (pro 602SQL 9.x, či 10.0)
    SQL602LIBDIRadresář s knihovnami 602krnl8.lib a 602prez8.lib (pro 602SQL 8.x - součástí Extension Packu), resp. adresář s knihovnou 602krnl9.lib (pro 602SQL 9.0 - součást Podpory pro C/C++), resp. s knihovnou 602krnl95.lib (pro 602SQL 9.5), resp. s knihovnou 602krnl10.lib (pro 602SQL 10.0)
    SQLVERMAJčíslo verze 602SQL, pro kterou chcete sestavit PHP modul:
    8 pro 602SQL 8.x
    9 pro 602SQL 9.0
    95 pro 602SQL 9.5
    10 pro 602SQL 10.0
  3. PHP modul zkompilujte příkazy
    C:
    cd \php_602sql
    nmake -f php_602sql.mak
    PHP modul bude sestaven do souboru c:\php_602sql\php_602sql8.dll, nebo c:\php_602sql\php_602sql9.dll, nebo c:\php_602sql\php_602sql95.dll, nebo c:\php_602sql\php_602sql10.dll, podle zvoleného hlavního čísla verze 602SQL.

Sestavení modulu pro Linux

Modul lze sestavit buď v rámci kompilace PHP, nebo samostatně. Pokud si PHP kompilujete, pak vždy sestavujte 602SQL modul v rámci kompilace PHP. Samostatné sestavení modulu zvolte, pokud máte PHP nainstalováno z binárního RPM balíčku. Pro samostatné sestavení modulu musíte mít také nainstalován balíček php-devel stejné verze, jaká je verze balíčku php. Samostatným sestavením modulu získáte vždy dynamicky nahrávaný modul php_602sql8.so (resp. php_602sql9.so, či php_602sql95.so, či php_602sql10.so - podle verze 602SQL, pro kterou PHP modul sestavujete), zatímco kompilací modulu v rámci kompilace PHP můžete modul 602SQL zakompilovat do PHP.

Sestavení modulu v rámci kompilace PHP je připraveno a odzkoušeno s PHP 4.2.x, PHP 4.3.x a s PHP 5.0.x, s jinými verzemi PHP se to nemusí podařit (např. proto, že v config.m4 se používají makra, která jsou definována až v PHP 4.2.x). Při sestavování modulu s PHP 4.1.x upravte v textovém editoru soubor config.m4 podle pokynů, které jsou v něm uvedeny.

Sestavení modulu v rámci kompilace PHP:

  1. Do podadresáře 602sql v podadresáři ext adresáře se zdrojovými texty PHP (nechť to je /usr/src/php-4.2.3/ext/602sql) zkopírujte následující soubory PHP modulu: mod602sql.c, mod602sql.h, php_602sql.h. K nim přikopírujte trojici souborů config.m4, CREDITS a Makefile.in, které naleznete v podadresáři 602sql8, resp. 602sql9, resp. 602sql95, resp. 602sql10, podle toho, pro kterou verzi 602SQL chcete PHP modul sestavit. Soubory v podadresáři 602sql8 jsou určeny pro 602SQL 8.0, nebo 8.1, soubory v podadresáři 602sql9 jsou určeny pro 602SQL 9.0, v podadresáři 602sql95 pro 602SQL 9.5 a v podadresáři 602sql10 pro 602SQL 10.0.
  2. Po zkopírování souborů spusťte skript buildconf (tedy /usr/src/php-4.2.3/buildconf), který zahrne nově přidaný podadresář adresáře ext do systému sestavování PHP.
  3. Při konfiguraci kompilace PHP zadejte jako jeden z parametrů skriptu configure --with-602sql. Tvarem tohoto parametru je ovlivněno, zda modul bude staticky slinkován s PHP (bude jeho nedílnou součástí), nebo zda bude sestaven dynamicky nahrávaný modul php_602sql8.so, resp. php_602sql9.so, resp. php_602sql95.so, resp. php_602sql10.so. Dále se tímto parametrem nastavuje, kde se budou hledat hlavičkové soubory a knihovny 602SQL serveru. Hlavičkové soubory 602SQL jsou součástí Extension Packu (pro 602SQL 8.x), resp. součástí Podpory pro C/C++ (pro 602SQL 9.x, či 10.0). Lze je stáhnout na http://www.602.cz. Následující tabulka obsahuje možné tvary tohoto parametru a jejich význam.
    tvar parametruvýznam
    --with-602sql modul bude zakompilován do PHP (bude jeho nedílnou součástí, tj. ani nebude vytvářena dynamická knihovna php_602sql8.so, resp. php_602sql9.so)
    hlavičkové soubory 602SQL 8.x se budou hledat v adresáři /usr/local/include/602sql8 nebo v adresáři /usr/include/602sql8, resp. hlavičkové soubory 602SQL 9.0 se budou hledat v adresáři /usr/local/include/602sql9 nebo v adresáři /usr/include/602sql9, resp. hlavičkové soubory 602SQL 9.5 se budou hledat v adresáři /usr/local/include/602sql95 nebo v adresáři /usr/include/602sql95, resp. hlavičkové soubory 602SQL 10.0 se budou hledat v adresáři /usr/local/include/602sql10 nebo v adresáři /usr/include/602sql10
    knihovna libwb602.so 602SQL 8.x se bude hledat v adresáři /usr/local/lib/602sql8 nebo v adresáři /usr/lib/602sql8, resp. knihovna lib602krnl9.so 602SQL 9.0 se bude hledat v adresáři /usr/local/lib/602sql9 nebo v adresáři /usr/lib/602sql9, resp. knihovna lib602krnl95.so 602SQL 9.5 se bude hledat v adresáři /usr/local/lib/602sql95 nebo v adresáři /usr/lib/602sql95, resp. knihovna lib602krnl10.so 602SQL 10.0 se bude hledat v adresáři /usr/local/lib/602sql10 nebo v adresáři /usr/lib/602sql10
    --with-602sql=shared modul bude sestaven jako dynamicky nahrávaný modul php_602sql8.so, resp. php_602sql9.so, resp. php_602sql95.so, resp. php_602sql10.so v adresáři /usr/src/php-4.2.3/modules
    hlavičkové soubory 602SQL 8.x se budou hledat v adresáři /usr/local/include/602sql8 nebo v adresáři /usr/include/602sql8, resp. hlavičkové soubory 602SQL 9.0 se budou hledat v adresáři /usr/local/include/602sql9 nebo v adresáři /usr/include/602sql9, resp. hlavičkové soubory 602SQL 9.5 se budou hledat v adresáři /usr/local/include/602sql95 nebo v adresáři /usr/include/602sql95, resp. hlavičkové soubory 602SQL 10.0 se budou hledat v adresáři /usr/local/include/602sql10 nebo v adresáři /usr/include/602sql10
    knihovna libwb602.so 602SQL 8.x se bude hledat v adresáři /usr/local/lib/602sql8 nebo v adresáři /usr/lib/602sql8, resp. knihovna lib602krnl9.so 602SQL 9.0 se bude hledat v adresáři /usr/local/lib/602sql9 nebo v adresáři /usr/lib/602sql9, resp. knihovna lib602krnl95.so 602SQL 9.5 se bude hledat v adresáři /usr/local/lib/602sql95 nebo v adresáři /usr/lib/602sql95, resp. knihovna lib602krnl10.so 602SQL 10.0 se bude hledat v adresáři /usr/local/lib/602sql10 nebo v adresáři /usr/lib/602sql10
    --with-602sql=/cesta modul bude zakompilován do PHP (bude jeho nedílnou součástí, tj. ani nebude vytvářena dynamická knihovna php_602sql8.so, resp. php_602sql9.so, resp. php_602sql95.so)
    hlavičkové soubory 602SQL 8.x se budou hledat v adresáři /cesta/include/602sql8, resp. hlavičkové soubory 602SQL 9.0 se budou hledat v adresáři /cesta/include/602sql9, resp. hlavičkové soubory 602SQL 9.5 se budou hledat v adresáři /cesta/include/602sql95, resp. hlavičkové soubory 602SQL 10.0 se budou hledat v adresáři /cesta/include/602sql10
    knihovna libwb602.so 602SQL 8.x se bude hledat v adresáři /cesta/lib/602sql8, resp. knihovna lib602krnl9.so 602SQL 9.0 se bude hledat v adresáři /cesta/lib/602sql9, resp. knihovna lib602krnl95.so 602SQL 9.5 se bude hledat v adresáři /cesta/lib/602sql95, resp. knihovna lib602krnl10.so 602SQL 10.0 se bude hledat v adresáři /cesta/lib/602sql10
    --with-602sql=shared,/cesta modul bude sestaven jako dynamicky nahrávaný modul php_602sql8.so, resp. php_602sql9.so, resp. php_602sql95.so v adresáři /usr/src/php-4.2.3/modules
    hlavičkové soubory 602SQL 8.x se budou hledat v adresáři /cesta/include/602sql8, resp. hlavičkové soubory 602SQL 9.0 se budou hledat v adresáři /cesta/include/602sql9, resp. hlavičkové soubory 602SQL 9.5 se budou hledat v adresáři /cesta/include/602sql95, resp. hlavičkové soubory 602SQL 10.0 se budou hledat v adresáři /cesta/include/602sql10
    knihovna libwb602.so 602SQL 8.x se bude hledat v adresáři /cesta/lib/602sql8, resp. knihovna lib602krnl9.so 602SQL 9.0 se bude hledat v adresáři /cesta/lib/602sql9, resp. knihovna lib602krnl95.so 602SQL 9.5 se bude hledat v adresáři /cesta/lib/602sql95, resp. knihovna lib602krnl10.so 602SQL 10.0 se bude hledat v adresáři /cesta/lib/602sql10
  4. Zkompilujte PHP, v rámci této kompilace bude zkompilován i 602SQL modul.

Sestavení modulu samostatnou kompilací:

  1. Rozbalte soubory PHP modulu do nějakého adresáře (nechť je to /usr/src/php_602sql).
  2. V souboru /usr/src/php_602sql/php_602sql.lmk upravte následující parametry:
    název parametruvýznam parametru
    phpincdiradresář s hlavičkovými soubory PHP (obsahuje mj. podadresáře main, TSRM a Zend)
    phpmoddiradresář s dynamicky nahrávanými PHP moduly (je uveden v php.ini v klíči extension_dir)
    sql602incdiradresář s hlavičkovými soubory 602SQL (obsahuje mj. soubory wbkernel.h a general.h)
    Hlavičkové soubory 602SQL jsou součástí Extension Packu (pro 602SQL 8.x), resp. součástí Podpory pro C/C++ (pro 602SQL 9.x). Lze je stáhnout na http://www.602.cz.
    sql602libdiradresář s dynamickými knihovnami 602SQL (obsahuje mj. knihovnu libwb602.so v případě 602SQL 8.x, respektive lib602krnl9.so v případě 602SQL 9.0, resp. lib602krnl95.so v případě 602SQL 9.5, resp. lib602krnl10.so v případě 602SQL 10.0)
    knihovny jsou obvykle v adresáři /usr/lib/602sql8, resp. /usr/lib/602sql9, resp. /usr/lib/602sql95, resp. /usr/lib/602sql10, a jsou součástí standardní instalace 602SQL pro Linux
    sql602vermajčíslo verze 602SQL, pro kterou chcete sestavit PHP modul (viz popis uvedený v php_602sql.lmk)
  3. Modul zkompilujte příkazem
    cd /usr/src/php_602sql
    make -f php_602sql.lmk

Verze PHP modulu a seznam změn od vydání 602SQL 8.0

PHP modul php_602sql (resp. php_wb602) se čísluje takto: první dvě číslice v čísle verze jsou číslo verze 602SQL (resp. WinBase602), pro kterou je daný PHP modul určen. Tyto číslice se mění pouze tehdy, když je vydána novější "velká" verze 602SQL. Třetí číslice je vždy nula. Čtvrtá číslice je číslo sestavení PHP modulu a tato číslice se mění při každém vydání novějšího PHP modulu.

PHP moduly php_602sql verze (např.) 8.0.0.16 a php_wb602 verze 7.0.0.16 jsou z hlediska funkčnosti totožné (pouze s tím rozdílem, že php_wb602 nemá implementovány rysy, které nejsou implementovány ve WinBase602 7.0 - např. podporu pro čtení a zápis UNICODE řetězců), pouze je jeden určen pro 602SQL 8.0 a druhý pro WinBase602 7.0.

Aktuální verze je 11.0.0.37 (pro 602SQL 11.0). Ze zdrojových textů lze zkompilovat modul také pro 602SQL 8.0, 8.1, 9.0, 9.5 a 10.0 a pro WinBase602 7.0.

změny ve verzi 11.0.0.37 (3.3.2011)
změny ve verzi 11.0.0.36 (30.7.2008, aktualizace 27.1.2009, další aktualizace 9.3.2009)
změny ve verzi 11.0.0.35 (3.1.2008)
změny ve verzi 11.0.0.35 (27.8.2007)
změny ve verzi 11.0.0.35 (2.8.2007)
změny ve verzi 10.0.0.34
změny ve verzi 10.0.0.33
změny ve verzi 9.5.0.32
změny ve verzi 9.5.0.31
změny ve verzi 9.5.0.30
změny ve verzi 9.5.0.29
změny ve verzi 9.5.0.28
změny ve verzi 9.0.0.27
změny ve verzi 9.0.0.26
změny ve verzi 9.0.0.25
změny ve verzi 9.0.0.24
změny ve verzi 9.0.0.23
změny ve verzi 9.0.0.22
změny ve verzi 8.1.0.22
změny ve verzi 8.1.0.21
změny ve verzi 8.1.0.20
změny ve verzi 8.1.0.19
změny ve verzi 8.1.0.18
změny ve verzi 8.0.0.17
změny ve verzi 8.0.0.16
změny ve verzi 8.0.0.15
změny ve verzi 8.0.0.14
změny ve verzi 8.0.0.13
změny ve verzi 8.0.0.12
změny ve verzi 8.0.0.11
změny ve verzi 8.0.0.10
změny ve verzi 8.0.0.9

Další informace

Popis PHP funkcí, které jsou v PHP modulu implementovány, je uveden v elektronické dokumentaci k 602SQL (Rozhraní pro přístup na SQL server -> Modul PHP).
Instalace PHP modulu do PHP je popsána tamtéž.
Podrobnější informace o 602SQL a o PHP modulu pro 602SQL lze nalézt na stránkách http://www.software602.cz/602sql/.