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.

About these ads

12 pensieri su “Attivare il modulo PHP PDO Informix in Zend Server 5

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

  2. 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 Files\Zend\ZendServer\lib\phpext\php_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

    • 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. 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%\System32\Wbem;C:\Program Files\ibm\gsk7\bin;C:\Program Files\ibm\gsk7\lib;”C:\Program Files\Zend\ZendServer\bin”;”C:\Program Files\Zend\ZendServer\share\ZendFramework\bin”;C:\Program Files\IBM\Informix\Client-SDK\bin

    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.

    • 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. 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. 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

  6. 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 Files\Zend\ZendServer\etc\ZendEnablerConf.xml del percorso del client sdk C:\Program Files\IBM Informix Client SDK\bin.

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

  7. 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(Zend\Db\Adapter\Pdo\Informix.php)

    Dove posso recuperare questo file?

    Oppure la configurazione è errata?

    Grazie
    ciao

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Connessione a %s...