The ultimate guide of: Mac OS X Snow Leopard, Informix, PHP 5.3 & PDO



Documenti analoghi
COME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL

Lezione 9. Applicazioni tradizionali

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Corso di Informatica Modulo T3 B2 - Database in rete

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Tutorial MYSQL. Creazione linked server con Microsoft SQL Server per lettura dati da MYSQL. Validità: Febbraio 2013

Il web server Apache Lezione n. 3. Introduzione

GERARCHIE RICORSIVE - SQL SERVER 2008

Guida all Installazione del ProxyFatturaPA

Note Tecniche Installazione ed Aggiornamento EasyTelematico 1.3.x

Al giorno d oggi, i sistemi per la gestione di database

Configuration Managment. Tutorial. Configuration Managment Creare un progetto SVN su Ubuntu. Creare un progetto SVN su Ubuntu.

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Mac OS

GovPay 2.0. Manuale Installazione

JDBC versione base. Le classi/interfacce principali di JDBC

Progetto di Ingegneria del Software 2. SWIMv2

Gestione rifiuti VeLieRO

Indice GAMMA. Guida utente

Installazione e caratteristiche generali 1

Contenuto del pacchetto

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Installazione di GFI Network Server Monitor

Abilitazione e uso del protocollo EtherTalk

Appunti di Informatica 1

Installazione di Filenet Content Services 5.3 di Emanuele Mattei (emanuele.mattei[at] .it)

Guida reinstallazione < UniEmens > Guida Operativa. Reinstallazione. UniEmens

JDBC di base. Le classi/interfacce principali di JDBC

e/fiscali - Rel e/fiscali Installazione

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Panoramica: che cosa è necessario

GUIDA ALL INSTALLAZIONE. Protezione di locale/rete. per il software CADPak su client e server di rete. per la Chiave Hardware Sentinel Hasp

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Fiery Driver Configurator

(1) Network Camera

Licenza per sito Manuale dell amministratore

INSTALLAZIONE MS WINDOWS 7 SU MACCHINA VIRTUALE VMWARE

Windows 2000, Windows XP e Windows Server 2003

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

Tale attività non è descritta in questa dispensa

Biotrends - Istruzioni per il Setup

SipaMi.NET v Risoluzione problemi installazione

Guida alla documentazione italiana di Solaris Server per sistemi SPARC SMCC

Installazione Alfresco Avanzata

FileMaker 12. Guida ODBC e JDBC

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Lavorare con MySQL Parte Seconda.

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

CREAZIONE DI UN SOTTOSITO

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

PIANO DI TUTELA DELLE ACQUE DELLA SICILIA (di cui all'art. 121 del Decreto Legislativo 3 aprile 2006, n 152)

MANUALE DEL FLASH POINT MANAGER 19 Luglio 2007 INDEX

Le command line di Java

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Registratori di Cassa

Guida Google Cloud Print

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

MODEM USB MDC525UP Guida Rapida LINUX

Apache 2, PHP5, MySQL 5

Note sull utilizzo di DB2 in LAB 4 e su come collegarsi in remoto

LABORATORIO DI Tecnologie di Sviluppo per il Web. Guida all installazione del Software

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Guida all installazione di SWC701DataWebAccess (.net 2.0)

Database e reti. Piero Gallo Pasquale Sirsi

Personalizzazione Stampe

GE Fanuc Automation. Page 1/12

DOCFINDERWEB SERVICE E CLIENT

Aruba Sign 2 Guida rapida

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

SCARICO DATI ONETOUCH Verio per EuroTouch Home GUIDA ALL USO

BDCC : Guida rapida all utilizzo

Hosting Applicativo Upgrade Web Client

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

AXWIN6 QUICK INSTALL v.3.0

D3.7 Sviluppo di unità di test e report relativi ai moduli di interfacciamento tra il Portale di visualizzazione remota 3D e il MiddleWare.

Installazione MS SQL Express e utilizzo con progetti PHMI

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Introduzione JDBC interfaccia java.sql driver caricare i driver

Assegnamento di un indirizzo IP temporaneo a dispositivi Barix

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

4.0 SP2 ( ) maggio P Xerox FreeFlow Core Express Guida all'installazione

Corso Eclipse. Prerequisiti. 1 Introduzione

Introduzione a phpmyadmin

ARCHIVIA PLUS - ARCHIFILE

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/ fax: 041/

FileMaker 8. Installazione dei driver client FileMaker 8 ODBC e JDBC

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows

Let's start! File > New Project > Ruby > Ruby on Rails Application (events)

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Manuale Utente Guglielmo MILESTONE

Teleassistenza mediante PCHelpware

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Titolo. Manuale Configurazione ODBC Firebird

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Transcript:

The ultimate guide of: Mac OS X Snow Leopard, Informix, PHP 5.3 & PDO 1. Introduzione Nel mio ultimo articolo Mac OS X Snow Leopard: Informix IDS 11.5 + PHP 5.3 (Musarra, 2009) è stato spiegato come installare e configurare IBM Informix IDS 11.5 affrontando inoltre la compilazione e installazione del modulo PHP Informix (The PHP Group, 2010). In quest articolo vedremo come portare a termine con successo l installazione del modulo PDO Informix (The PHP Group, 2010), ma non solo, vedremo anche qualche esempio pratico sull utilizzo del modulo PDO Informix. Il modulo PDO Informix è il driver che implementa l interfaccia PHP Data Object (PDO) (The PHP Group, 2010) che consente l accesso da PHP a data base IBM Informix IDS. 2. Requisiti per l installazione del modulo PDO Informix L installazione del modulo richiede Informix Client SDK 2.81 (o versione superiore) abbreviato in CSDK installato sullo stesso sistema del PHP (quindi Mac OS X Snow Leopard). Approfondimenti su CSDK, compreso lo stesso package d installazione, sono disponibili alla pagina del sito IBM Informix Support Site 1. Da questo momento in poi assumiamo di aver installato e configurato sulla macchina Mac OS X Snow Leopard il software IBM Informix IDS 11.5. Consiglio di fare riferimento per l installazione e configurazione di IBM Informix IDS 11.5 alla documentazione ufficiale disponibile sul sito IBM Informix Online Transaction Processing (OLTP) 2 o all articolo Mac OS X Snow Leopard: Informix IDS 11.5 + PHP 5.3. L ultima versione stabile del modulo PDO Informix che andremo a installare è la versione 1.2.6. 1 http://www-306.ibm.com/software/data/informix/tools/csdk/ 2 http://www-01.ibm.com/software/data/informix/?pgel=ibmhzn&cm_re=masthead-_-products-_-sw-informix 05/03/10 1

3. Compilazione e installazione del modulo PDO Informix La distribuzione PHP installata di serie su Mac OS Snow Leopard è la versione 5.3 (verifica con il comando php -v eseguito dal Terminal) completa di supporto PDO. E possibile verificare che il supporto PDO sia attivo con il comando php -i grep -E PDO, ottenendo un output simile a quello illustrato al Listing 1 che dimostra l abilitazione del modulo PDO e driver PDO installati (al momento PDO drivers => mysql, sqlite, sqlite2). PDO PDO support => enabled PDO drivers => mysql, sqlite, sqlite2 PDO Driver for MySQL => enabled PDO Driver for SQLite 3.x => enabled Listing 1 Output del comando per la verifica del modulo PDO L installazione di moduli PECL (The PHP Group, 2009) avviene nel solito modo, in altre parole, utilizzando il comando sudo pecl install PDO_Informix. L unica accortezza da utilizzare nell uso del comando consiste nello specificare l opzione --nodeps, necessaria per ignorare la dipendenza dal modulo PDO, quest ultimo stranamente non risulta come package installato via PECL. Il comando PECL completo per l installazione del modulo diventa quindi: sudo pecl install --nodeps PDO_Informix Al Listing 2 è mostrato un estratto dell output prodotto dal processo d installazione del modulo PDO Informix. Il processo di compilazione del modulo richiede la conoscenza del path d installazione di CSDK, solitamente verifica il path d installazione leggendo la variabile di ambiente INFORMIXDIR (configurata in fase d installazione di IBM Informix IDS 11.5), qualora non fosse disponibile la variabile di ambiente o fosse errato il valore assegnato alla variabile, chiede l inserimento manuale del path d installazione di CSDK, nel mio caso il path coincide con INFORMIXDIR. amusarra-mobile:~ amusarra$ sudo pecl install --nodeps --soft PDO_Informix downloading PDO_INFORMIX-1.2.6.tgz... Starting to download PDO_INFORMIX-1.2.6.tgz (65,676 bytes) PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 Informix Client SDK location? : /opt/ibm/informix Build process completed successfully Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/pdo_informix.so' install ok: channel://pear.php.net/pdo_informix-1.2.6 Listing 2 Parte dell output del processo d installazione del modulo PDO Informix 05/03/10 2

Il modulo PDO Informix è stato installato all interno della directory che contiene tutte le estensioni di PHP (in /usr/lib/php/extensions/no-debug-non-zts-20090626). Adesso che l installazione è stata portata a termine, occorre procedere con l attivazione del modulo PDO Informix aggiungendo l opportuna riga sul file di configurazione di PHP, quindi, modificare il file /etc/php.ini inserendo la riga: extension=pdo_informix.so E possibile verificare la corretta installazione e configurazione del modulo eseguendo il comando php -i grep -E "PDO pdo_informix", al Listing 3 è mostrato l output del comando precedente. PDO PDO support => enabled PDO drivers => mysql, sqlite, sqlite2, Informix pdo_informix pdo_informix support => enabled PDO Driver for MySQL => enabled PDO Driver for SQLite 3.x => enabled Listing 3 Verifica installazione e configurazione PDO Informix 4. Configurazione ODBC Informix Il modulo PDO Informix richiede la corretta configurazione del driver ODBC Informix. L installazione di IBM Informix IDS prevede che i file di configurazione ODBC (Wikipedia, 2010) di esempio siano installati all interno della directory etc di INFORMIXDIR, i file sono: /opt/ibm/informix/etc/odbc.ini /opt/ibm/informix/etc/odbcinst.ini I file di configurazione ODBC devono essere rivisti sulla base della propria installazione ed esigenze. Al Listing 4 e Listing 5 sono illustrati entrambi i file opportunamente modificati. 05/03/10 3

[ODBC Data Sources] Infdrv1=IBM INFORMIX ODBC DRIVER ; ; Define ODBC Database Driver's Below - Driver Configuration Section ; [Infdrv1] Driver=/opt/IBM/informix/lib/cli/iclit09b.dylib Description=IBM INFORMIX ODBC DRIVER Database=stores_demo LogonID=odbc pwd=odbc Servername=amusarra_ifx Listing 4 Parte del file odbc.ini rivisto. [ODBC Drivers] IBM INFORMIX ODBC DRIVER=Installed [IBM INFORMIX ODBC DRIVER] Driver=/opt/IBM/informix/lib/cli/iclit09b.dylib Setup=/opt/IBM/informix/lib/cli/iclit09b.dylib APILevel=1 ConnectFunctions=YYY DriverODBCVer=03.51 FileUsage=0 SQLLevel=1 smprocessperconnect=y Listing 5 Parte del file odbcinst.ini rivisto. Dopo la modifica dei files di configurazione ODBC è necessario impostare la variabile di ambiente ODBCINI al valore INFORMIXDIR/etc/odbc.ini. export ODBCINI=/opt/IBM/informix/etc/odbc.ini Per maggiori informazioni riguardo ODBC Informix consultare la documentazione ufficiale disponibile all indirizzo: http://publib.boulder.ibm.com/infocenter/idshelp/v115/topic/com.ibm.odbc.doc/odbc.htm 05/03/10 4

5. Test del modulo PDO Informix A questo punto non resta altro che scrivere un semplice script PHP per provare il corretto funzionamento del modulo PDO Informix. Per l operazione di test è possibile sfruttare stores_demo come data base su cui eseguire le nostre prove. Al Listing 6 è illustrato uno script di esempio che esegue una connessione e una successiva query al data base IBM Informix così come indicato sulla configurazione ODBC vista nel precedente paragrafo. La connessione al data base IBM Informix da parte del modulo PDO Informix è effettuata utilizzando una stringa di connessione compliant alla struttura del Data Source Name (DSN) (Wikipedia, 2009) basata su Informix ODBC DSN Name. #!/usr/bin/php <?php try { $db = new PDO("informix:DSN=Infdrv1", "", ""); $stmt = $db->prepare('select CAT_ADVERT, CAT_DESCR, CAT_PICTURE FROM CATALOG WHERE CATALOG_NUM =?'); $stmt->execute(array('10073')); $stmt->bindcolumn(1, $Advert, PDO::PARAM_STR, 256); $stmt->bindcolumn(2, $Descr, PDO::PARAM_STR, 512); $stmt->bindcolumn(3, $Pic, PDO::PARAM_LOB); $stmt->fetch(pdo::fetch_bound); echo "Advert: $Advert\n"; echo "Catalog Desc: $Descr\n"; $db = null; } catch (PDOException $e) { print "Error!: ". $e->getmessage(). "\n"; die(); }?> Listing 6 Script PHP di test del modulo PDO Informix In Tabella 1 sono mostrati una serie di possibili errori che potreste incontrare durante l esecuzione dello script mostrato al Listing 6. Esiste un comando di IBM Informix che restituisce la descrizione degli errori sulla base del codice d'errore ricevuto, il comando si chiama finderr. Al Listing 7 l esempio di utilizzo del comando per l errore avente codice -908. 05/03/10 5

Tabella 1 Possibili errori di esecuzione Errore Error!: SQLSTATE=IM002, SQLDriverConnect: -11041 [Informix][Informix ODBC Driver]Data source name not found and no default driver specified. Descrizione Questo tipo di errore potrebbe verificarsi perché il nome DSN specificato nella stringa di connessione non è presente nel file di configurazione odbc.ini, è anche possibile che l errore sia dovuto alla non corretta valorizzazione della variabile di ambiente ODBCINST. Soluzione A) Verifica del file di configurazione odbc.ini ed eventuale correzione dello script PHP o dello stesso file odbc.ini; B) Verifica che la variabile di ambiente ODBCINST sia impostata correttamente (utilizzo del comando echo $ODBCINST). Fare riferimento al relativo paragrafo sulla configurazione ODBC Informix. Errore Error!: SQLSTATE=00000, SQLDriverConnect: 0 [iodbc][driver Manager]dlopen(/opt/IBM/informix/cli/iclit09b.dylib, 6): image not found Descrizione Errore che si verifica quando il driver ODBC non viene caricato correttamente, in questo caso l errore è dovuto al path errato del driver. Soluzione Modificare il path del driver sul file di configurazione ODBC odbc.ini. In questo caso il path corretto è: /opt/ibm/informix/lib/cli/iclit09b.dylib. Errore Error!: SQLSTATE=08004, SQLDriverConnect: -908 [Informix][Informix ODBC Driver][Informix]Attempt to connect to database server (amusarra_ifx) failed. Descrizione Lo script PHP non riesce ad effettuare la connessione al server IBM Informix specificato sulla configurazione ODBC. Il problema potrebbe essere dovuto alla rete o più semplicemente al fatto che l istanza IBM Informix non è attiva. Soluzione Ipotizzando che l istanza IBM Informix non sia attiva, eseguiamo un controllo e successivo start dell istanza. Utilizzare il comando onstat - per verificare che IBM Informix sia in stato online e il comando oninit per portare online il data base. 05/03/10 6

amusarra-mobile:macosxsnowleopard_informixids11.5_pdo amusarra$ finderr -908-908 Attempt to connect to database server (servername) failed. The program or application is trying to access another database server but has failed. Note the server name in the current statement. The desired database server is unavailable, or the network is down or is congested. Ask your DBA and system administrator to verify that the server and network are operational. If the network is congested, use the environment variables INFORMIXCONTIME and INFORMIXCONRETRY to tune connection timing. For information on setting these environment variables, see the IBM Informix Guide to SQL: Reference. This message appears in Version 6.0 and later versions. Listing 7 Output del comando finderr per l errore -908 05/03/10 7

Bibliografia Musarra, A. (2009, Novembre 23). Mac OS X Snow Leopard: Informix IDS 11.5 + PHP 5.3. Tratto da IBM My developerworks: https://www.ibm.com/developerworks/mydeveloperworks/blogs/amusarra/entry/mac_os_ x_snow_leopard_informix_ids_11_5_php_5_31?lang=en The PHP Group. (2009, Agosto 7). PECL :: The PHP Extension Community Library. Tratto da PECL :: The PHP Extension Community Library: http://pecl.php.net/ The PHP Group. (2010, Febbraio 26). PHP: Informix (PDO). Tratto da PHP: Hypertext Preprocessor: http://it.php.net/manual/en/ref.pdo-informix.php The PHP Group. (2010, Febbraio 26). PHP: Informix Manual. Tratto da PHP: Hypertext Preprocessor: http://it.php.net/manual/en/book.ifx.php The PHP Group. (2010, Febbraio 26). PHP: PDO Manual. Tratto da PHP: Hypertext Preprocessor: http://it.php.net/manual/en/book.pdo.php Wikipedia. (2009, Novembre 29). Database Source Name - Wikipedia. Tratto da Database Source Name - Wikipedia: http://en.wikipedia.org/wiki/database_source_name Wikipedia. (2010, Gennaio 7). ODBC - Wikipedia. Tratto da Open Database Connectivity (ODBC): http://en.wikipedia.org/wiki/odbc 05/03/10 8