Build RPM WSO2 WSF/PHP 2.1 per Zend Server 5

Da parecchio tempo ho adottato WSO2 WSF/PHP come framework di rifermento per lo sviluppo di Web Services in ambienti di tipo enterprise, da non sottovalutare è l’aspetto che riguarda l’adesione ai più comuni standard WS-*. In ambienti di tipo enterprise è facile trovare applicazioni web (sia front-end sia back-end) il cui container di esecuzione è l’application server basato sulla soluzione offerta da Zend Server.

In quest’articolo vedremo come realizzare il package RPM del framework WSO2 WSF/PHP 2.1 da installare in seguito sulla macchina che esegue l’application server Zend Server. I requisiti necessari per ottenere il package RPM contenente i binari di WSO2 WSF/PHP 2.1 sono:

  • Una macchina di sviluppo Linux con l’installazione dei tool di development;
  • Zend Server 5.x (Enterprise Edition o Community Edition)
  • RPM Spec file per WSO2 WSF/PHP 2.1

Per l’operazione di creazione del package RPM è buona norma utilizzare una delle distribuzioni consigliate da Zend, tra quelle che supportano il formato RPM. Fare riferimento al documento Choosing Which Distribution to Install che mostra la tabella completa delle distribuzioni Linux che supportano l’installazione di package RPM. Consiglio inoltre l’utilizzo della stessa distribuzione utilizzata in ambiente di collaudo e produzione di Zend Server

1. Creazione del package RPM WSO2 WSF/PHP

La piattaforma (di sviluppo) di riferimento adottata per la stesura di quest’articolo è la seguente:

  • Distribuzione Linux CentOS 5.6 x86_64 su VirtualBox 4.0.6
  • Zend Server 5.1 Enterprise Edition (PHP 5.2)

I passi necessari per terminare il processo di building del package RPM sono i seguenti:

  • Download dei sorgenti (tar.gz) di WSO2 WSF/PHP 2.1 dal sito http://wso2.org/downloads/wsf/php
  • Export dello spec file dal repository Contrib SVN https://svn.wso2.org/repos/contrib
  • Build del package RPM

1. Download dei sorgenti WSO2 WSF/PHP 2.1

2. Checkout RPM spec file wsf-zend-server.spec

3. Build del package RPM

L’ultimo comando, rpmbuild, esegue tutte le azioni indicate sullo spec file, generando alla fine del build il package RPM posizionandolo in /usr/src/redhat/RPMS/x86_64/. Il pacchetto generato prende il nome di wso2-wsf-php-2.1.0-1.x86_64.rpm. E’ possibile verificare una serie d’informazioni sul package appena creato utilizzando il comando:

L’output del comando dovrebbe essere simile a quanto illustrato di seguito:

2. Installazione del package WSO2 WSF/PHP

Il package creato in precedenza è quindi pronto per essere installato sulla macchina target, nel nostro caso la macchina target è la stessa utilizzata per il build del package. L’installazione del package compie i seguenti passi:

  • Installa il software base nella directory /opt/wso2
  • Installa gli esempi di codice e la documentazione nella document root del server web
  • Installa il modulo wsf in /usr/local/zend/lib/php_extensions/
  • Crea ed installa in /etc/profile.d/ il file che imposta le variabili di ambiente necessarie
  • Crea ed installa in /usr/local/zend/etc/conf.d/ il file wsf.ini che contiene la configurazione del modulo wsf/php
  • Esegue la configurazione del Dynamic Linker attraverso il comando ldconfig
  • Esegue il restart di Zend Server per caricare il modulo wsf.so

Per l’installazione del package è sufficiente eseguire il comando illustrato a seguire. E’ possibile comunque eseguire una verifica d’installazione utilizzando l’opzione –test del comando rpm.

L’installazione esegue tutti i passi elencati in precedenza, l’output ottenuto dalla fase d’installazione dovrebbe essere simile al seguente:

Una veloce verifica della corretta installazione può essere fatta eseguendo il comando php -i accertandosi che il modulo wsf sia stato caricato correttamente (vedere il comando completo a seguire).

L’output del comando mostra la versione del modulo (in questo caso 2.1) e la configurazione, quest’ultima definita all’interno file /usr/local/zend/etc/conf.d/wsf.ini. E’ possibile, eseguire la stessa verifica utilizzando la console offerta da Zend Server, la console è raggiungibile all’indirizzo http://localhost:10081/ (vedi Figura 1)

Figura 1 - Estensioni PHP caricate in Zend Server

Figura 1 - Estensioni PHP caricate in Zend Server

Il contenuto del file /usr/local/zend/etc/conf.d/wsf.ini (mostrato di seguito) imposta la configurazione del modulo wsf, oltre a sovrascrivere l’attuale impostazione del parametro include_path aggiungendo la directory /opt/wso2/wsf_php/scripts/. Consiglio la verifica del parametro, onde evitare eventuali malfunzionamenti sulla vostra attuale configurazione.

Il manuale del framework e gli esempi di codice sono stati installati nella document root del web server, entrambi raggiungibili ai rispettivi indirizzi, http://localhost/docs e http://localhost/samples. In Figura 2 la pagina degli esempi installati, invece in Figura 3 è mostrato l’esempio di una calcolatrice che sfrutta i servizi web realizzati con WSF/PHP per eseguire le operazioni aritmetiche elementari.

Figura 2 - Pagina degli esempi installati con il framework

Figura 2 - Pagina degli esempi installati con il framework

Figura 3 - Esempio di una calcolatrice via Web Services

Figura 3 - Esempio di una calcolatrice via Web Services

4. Risorse

Credo possa essere utile a tutti avere a disposizione la Virtual Appliance da me utilizzata per la stesura di quest’articolo, ho quindi esportato la Virtual Appliance in formato OVF e pubblicata al seguente indirizzo:

  • Cent OS 5.6 OVF https://rapidshare.com/files/461521692/centos5.6-wsfphp2.1-zde5.1-1.tar.gz
  • MD5 Hash: https://rapidshare.com/files/461518340/centos5.6-wsfphp2.1-zde5.1-1.md5.txt

A seguire tutte le info necessarie per l’utilizzo della Virtual Appliance (in Figura 4 è illustrato il desktop della Virtual Appliance comprese le icone di WSO2 e Zend Server):

  • Username/Password: wso2/linuxwso2
  • Password root user: linuxwso2
  • Zend Server 5.1
    • Installato in /usr/local/zend
    • Web Console: http://localhost:10081
    • Password Web Console: zend
    • Init script in /etc/init.d/zend-server
  • WSO2 WSF/PHP
    • Installato in /opt/wso2
    • Sample in /var/www/samples
    • Docs in /var/www/docs
    • Configurazione /usr/local/zend/etc/conf.d/wsf.ini
    • Modulo in /usr/local/zend/lib/php_extensions/
Figura 4 - GNome Desktop della Virtual Appliance

Figura 4 - GNome Desktop della Virtual Appliance

L’utilizzo della Virtual Appliance con il software di virtualizzazione Virtual Box è praticamente immediato, occorre eseguire la procedura d’importazione, per maggiori informazioni seguire la guida Importing and exporting virtual machines. Qualora invece abbiate la necessità di dover importare la Virtual Appliance su VMWare, potreste utilizzare il tool VMware OVF Tool.

3. Conclusioni

In questa breve guida abbiamo visto tutti i passi necessari per realizzare il package RPM contenente i binari del conosciuto framework WSO2 WSF/PHP. La procedura è semplice e immediata, il package RPM ottenuto è così pronto per essere installato sulle proprie installazioni di Zend Server 5.x.

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