Informix PDO + PHP 5.3

CentOS 6 -on telepítettem Informix 11.70 / httpd2 / php szervert. Volt egy kis sok szívás, mire sikerült megoldani, hogy a PDO Informix működjön helyesen. Ezért készül a jegyzet, főleg magamnak, de hátha mást is érdekel.

1) centos install: alaprendszer +

yum upgrade && yum groupinstall "Development Tools" "Webserver"

2) Informix telepítés:
a) ha ezen a gépen akarjuk magát az Informix szervert is futtatni, akkor: Innovator-C / Ultimate / Developer Edition közül valamelyik telepítése
b) ha másik gépen van a szerver és innen csak csatlakozunk rá, akkor Informix Client SDK telepítése

Mindkét esetben ugyanaz a metódus, most a) -t írom le:


$ cd /opt
$ mkdir iif-install && cd iif-install
$ cp ~/Downloads/IIF.11.70.UC3TL.linux_kernel-2.6.18-128.el5PAE.tar .
$ tar xf IIF.11.70.UC3TL.linux_kernel-2.6.18-128.el5PAE.tar
$ ./ids_install
$ . /opt/IBM/informix/ol_informix1170.ksh #Informix környezeti változók exportolása, FONTOS!
$ dbaccessdemo #így létrehozunk egy stores_demo nevű teszt adatbázist

Megyjegyzés: ha 64 bites oprendszerre telepítjük a 64 bites Informixet, akkor is szükség van 32 bites libekre! Pl. ncurses-libs, de konkrétan kiírja a telepítő, ha valami nincs meg.
Informix telepítőkészletek letölthetők innen: http://www-01.ibm.com/software/data/informix/downloads.html (kell egy IBM userid a
letöltéshez, ingyen lehet regisztrálni)

3) php forgatása forrásból:


$ yum install wget #ha még nem történt meg
$ yum install httpd-devel libxml2-devel
$ cd /usr/src
$ wget http://www.php.net/get/php-5.3.6.tar.bz2/from/hu.php.net/mirror
$ tar xfj php-5.3.6.tar.bz2
$ cd php-5.3.6

configure az alábbi paraméterekkel: http://pastebin.com/Jb9xyNv6


$ make
$ make install
$ cp php.ini-production /usr/local/lib/php.ini

Elvileg a /usr/local/bin/php lesz a cli bináris, települ ugyanebbe a könyvtárba egy phpize program és a /usr/lib/httpd/modules/libphp5.so (/usr/lib64/... 64 bit esetén) is a helyére kerül.

A

/usr/local/lib/php.ini

-t fogja használni a php -nk. Erről a

php --ini

paranccsal tudunk meggyőződni.

Ellenőrizzük a

/etc/httpd/conf/httpd.conf

-ban, hogy a

LoadModule php5_module /usr/lib/httpd/modules/libphp5.so

bejegyzés meglegyen és ne legyen kikommentezve!
Ha már a httpd.conf -nál járunk, akkor a végére szúrjuk be ezt:


setenv INFORMIXDIR '/opt/IBM/informix'

4) PDO modul forgatása:


$ cd /usr/src
$ wget http://pecl.php.net/get/PDO_INFORMIX-1.2.6.tgz
$ tar xfz PDO_INFORMIX-1.2.6.tgz
$ cd PDO_INFORMIX-1.2.6
$ phpize
$ ./configure

Itt kézzel bele kell nyúlni a létrejött

Makefile

-ba. A

PDO_INFORMIX_SHARED_LIBADD

kezdetű sort kell keresni és ehhez hozzá kell adni a checkapi.o fájlt. Nálam megmódosítva ez így néz ki: http://pastebin.com/jJWZyA9k (értelemszerűen ha máshová telepítetted az Informixet, akkor máshol lesznek a fájlok /opt/IBM/informix helyett)

Majd:


$ make
$ make install

A

/usr/local/lib/php/extensions/no-debug-non-zts-20090626/

könyvtárba fog települni a pdo_informix.so modul. Ellenőrizzük, hogy jól fordult -e le az alábbi módon:

nm /usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_informix.so | grep -i api

! Erre valami ilyesmit kell visszaadnia:

00005410 T ifx_checkAPI

Ha üreset kapunk, akkor gebasz van, valamit eltoltunk a PDO modul forgatása során.

Már csak a

/usr/local/lib/php.ini

szerkesztése van hátra. Két bejegyzést kell hozzáadnunk:


extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626/"
extension=pdo_informix.so

5) Ellenőrzés: http://pastebin.com/niJjXwtn

6) Egy teszt php fájl, kipróbálásra: http://pastebin.com/yFg0U4PF
Nézzük meg parancssorból is és böngészőből is, httpd -n keresztül!

Tanulság: a repóból telepített php -hoz leforgatott PDO Informix modul csak cli -ből meghívva működik, apache -n keresztül csak a kézzel forgatott php -vel jó (rejtély számomra, hogy miért).

Források: [1] [2] [3] [4] [5]

Remélem, a pastebin tényleg örökké megőrzi a pasztákat, amiket most oda pakoltam. Hátha szükségem lesz rájuk. :)
Mire jó mindez? Belátni, hogy van élet a MySQL világán túl is.

Hozzászólások

az érdeklődésen kívül magyarázza még valami az informix-et? télleg érdekel...

Egyrészt azzal dolgozom, egy MAX nevű vállalatirányítási rendszer alatt fut. Másrészt egy rohadt jó rendszer adminisztrátori szempontból is többek között. Kb. "set it up and forget it". A legnagyobb Informix felhasználó a Wallmart hálózat, minden adatuk ilyen adatbázisban van. Összesen ~10.000 instance -ot üzemeltetnek kb. ~7.000 szerveren (ha jól emlékszem a számokra) és összesen 8 azaz nyolc DBA -val lefedik az összes üzemeltetési melót 7x24 -ben.
Egyébként Cisco aktív eszközökben is Informix dolgozik, ez nem annyira közismert.

gist.github.com - ez tuti orokeletu. Vagy legalabbis nagyjabol az.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal