Attivare il modulo PHP PDO Informix in Zend Server 5

Questo breve articolo prende spunto da un problema sollevato da un mio collega circa l’impossibilità di caricare il modulo PHP PDO Informix su piattaforma Microsoft Windows. La risoluzione del problema è molto semplice, è analoga a quella descritta nell’articolo The ultimate guide of: Mac OS X Snow Leopard, Informix, PHP 5.3 & PDO, l’unica differenza è la piattaforma di esecuzione, ovvero, Microsoft Windows.

La piattaforma di riferimento è Zend Server 5.1 (PHP 5.2.x)  su sistema operativo Microsoft Windows, la piattaforma Zend include il modulo PDO Informix già compilato (php_pdo_informix.dll), ovviamente, nessuno vieta l’utilizzo di PHP “standard” http://www.php.net.  Solitamente ogni modulo di PHP per essere regolarmente attivato, richiede che una serie di requisiti siano soddisfatti. Il modulo PDO Informix richiede l’installazione di IBM Informix Client SDK, senza questo componente software non sarà possibile caricare il modulo PDO Informix. Nella Figura 1 è illustrato l’errore che evidenza la dipendenza non risolta del modulo PDO Informix, in Figura 2 è invece illustrata la corretta risoluzione delle dipendenze dopo l’installazione di IBM Informix Client SDK.

Dipendenze PDO Informix non risolte

Figura 1. Dipendenze PDO Informix non risolte

Dipendenze PDO Informix risolte

Figura 2. Dipendenze PDO Informix risolte

L’attivazione del modulo PDO Informix dopo l’installazione del Client Informix dal modulo di amministrazione di Zend Server, non darà più nessun errore di caricamento, vedi Figura 3 e Figura 4.

Attivazione del modulo PDO Informix

Figura 3. Attivazione del modulo PDO Informix

Dettagli del modulo PDO Informix attivo

Figura 4. Dettagli del modulo PDO Informix attivo

Una volta attivo il modulo PDO Informix, è necessario procedere con la configurazione del Client Informix e ODBC prima di proseguire con la  codifica del codice PHP di connessione via PDO all’istanza Informix. La configurazione del Client Informix deve essere seguita con il programma Informix SetNet32.

Per maggiori informazioni sulla configurazione del Client Informix e ODBC fare riferimento al portale di supporto di IBM. Riporto un articolo di Kellen Bombardier che spiega step-by-step come installare, configurare e testare uno stack applicativo composto da Apache, Informix IDS e PHP Server su piattaforma Windows.

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

You may also like...

No Responses

  1. pietro marcelli scrive:

    Articolo perfettamente esplicativo circa la metodologia da seguire per configurare il modulo PDO informix in ambiente Windows.
    OTTIMO!!!!!

  2. Alessandro scrive:

    Ciao, ho seguito le tue indicazioni ma continuo ad avere:
    ERR – The system could not load this extension

    Nel file di log ho questo errore:
    PHP Warning: PHP Startup: Unable to load dynamic library ‘C:Program FilesZendZendServerlibphpextphp_pdo_informix.dll’ – The specified module could not be found.
    in Unknown on line 0

    Eppure il file è presente.

    SO: Windows server 2003 R2 SP2
    Zend Server: 5.1.0
    CSDK: 3.50.TC6

    L’installazione del server è pulita ed ho installato nell’ordine il Zend Server con il modulo Informix, il CSDK e poi attivato tra le estensioni.

    Ci sono altre cose da verificare?
    Grazie
    ciao

    • Antonio Musarra scrive:

      Ciao Alessandro,
      la prima cosa che mi viene in mente è la verifica della variabile di ambiente PATH, questa dovrebbe includere il PATH delle librerie (DLL) del CSDK. Magari prova ad utilizzare il tool Dependency Walker per la verifica del corretto link con le DLL.

      Fammi sapere.

      Bye,
      Antonio.

  3. Alessandro scrive:

    Leggendo nei forum di Zend pure a me era venuto quel sospetto. Infatti ho verificato che nel path fosse specificato il percorso del CSDK. Inoltre ho fatto diverse prove mettendolo prima, dopo e togliendolo come specificato in questo topic. Ma il risultato non è cambiato.

    http://forums.zend.com/viewtopic.php?f=44&t=6714

    Questo il path
    %SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:Program Filesibmgsk7bin;C:Program Filesibmgsk7lib;”C:Program FilesZendZendServerbin”;”C:Program FilesZendZendServershareZendFrameworkbin”;C:Program FilesIBMInformixClient-SDKbin

    La cosa assurda è che su un altro server (sempre virtualizzato, con sistema operativo identico) tutto ha funzionato a primo colpo. Ho anche provato a modificare il path di questo per vedere se riuscivo a ricreare l’errore, ma invece su questo funziona sempre. Il che mi fa presupporre che il problema sia un altro.

    Nel topic che ti ho indicato sopra l’utente specifica che potrebbe anche essere che il path usato dal web server non è quello d’ambiente. Ma in questo caso non saprei cosa fare per modificarlo.

    Inoltre, seguendo la tua guida, anche io ho utilizzato il Dependency Walker su entrambi i server (quello funzionante e quello non) e per entrambi le dipendenze sembrano ok tranne per un paio (IESHIMS.DLL e WER.DLL) che però non sembra siano fondamentali considerando appunto che su uno funziona.

    Altro non mi viene in mente, ho provato anche a ripartire da zero (ho un’immagine pulita del server) reinstallando il CSDK seguito dal Zend Server, e viceversa ma su questo server non c’è nulla da fare.

    • Antonio Musarra scrive:

      Ciao Alessandro,
      sicuramente il PATH per come indicato sul tuo commento deve essere visto da Zend Server, probabilmente hai già verificato l’env che vede Zend. Detto questo, alle brutte potresti provare a copiare le DLL del CSDK (o meglio solo quelle necessarie) direttamente sulla System32 di Windows. Verifico se magari ho tra le mie VM qualcuna con Windows 2003 per poter fare una simulazione.

      Bye,
      Antonio.

  4. Alessandro scrive:

    Ora ho riprovato anche ad utilizzare, ripartendo dal server pulito:

    ZendServer-CE-php-5.3.8-5.5.0-Windows_x86.exe
    clientsdk.3.70.TC3.WIN

    Del client ho installato solo gli ODBC e GLS. L’IBM DATA SERVER DRIVER va installato? Ho provato prima senza e poi con ma il risultato non cambia.

    A questo punto mi farò un clone dell’altra macchina, la ripulisco ed installo, però lascio in stand-by questa perchè voglio capire dove sta il problema.

    Se hai qualche idea ben venga.

  5. Alessandro scrive:

    Sono nuovo in Zend per cui se mi dici anche come verificare l’env lo faccio subito per togliere altri dubbi.

  6. Alessandro scrive:

    Il documento non lo conoscevo per cui grazie, appena ho tempo me lo leggo.
    Non trovo però gli allegati ai quali ti riferisci.

    Le variabili allora le avevo correttamente verificate tramite PHPInfo e sono corrette.

    Farò altre prove perchè vorrei capire a cosa sia dovuto il problema.

    Grazie intanto.
    ciao

  7. Alessandro scrive:

    Ciao,

    ho risolto il problema grazie al supporto nel forum (un ringraziamento particolare a Zvika Dror).
    In definitiva il problema nasce dalla mancanza nel path del file C:Program FilesZendZendServeretcZendEnablerConf.xml del percorso del client sdk C:Program FilesIBM Informix Client SDKbin.

    Una volta aggiunto questo e riavviate il server PHP tutto funziona correttamente.

  8. Alessandro scrive:

    Ciao Antonio eccomi di nuovo qui per un altro problemino.

    Il supporto ad informix ora è funzionante ed anche l’ODBC è configurato correttamente e funzionante.

    Mi aspettavo però di poter configurare il database in application.ini in questo modo:

    resources.db.adapter = “pdo_informix”
    resources.db.params.host = “localhost”
    resources.db.params.username = “root”
    resources.db.params.password = “pass”
    resources.db.params.dbname = “nome_3″

    Ma il server va a cercare il file Informix.php non trovandolo

    Warning: include_once(ZendDbAdapterPdoInformix.php)

    Dove posso recuperare questo file?

    Oppure la configurazione è errata?

    Grazie
    ciao

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">