Attivare il modulo PHP PDO Informix in Zend Server 5

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

  • pietro marcelli

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

  • Alessandro

    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

      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.

  • Alessandro

    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.

    • http://musarra.wordpress.com Antonio Musarra

      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.

  • Alessandro

    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.

  • Alessandro

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

    • http://musarra.wordpress.com Antonio Musarra

      Dalla console di amministrazione di Zend, dovresti andare sul Monitor e poi PHP Info.

      Bye,
      Antonio

  • Alessandro

    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

  • Alessandro

    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.

  • Alessandro

    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