PHP


Introduction et installation de PHP sur IBM i.



BoTTom



Introduction

Le langage PHP (Hypertext Preprocessor) est devenu en quelques années d'existence, le langage de programmation de sites web dynamiques le plus populaire à coté de Java et des JSP (Java Server Page).

De même que le serveur web Apache, la plate-forme Linux et le gestionnaire de base de données MySQL, le langage PHP s'appuie sur un logiciel Open Source, libre et gratuit.

PHP est un langage de script fonctionnant essentiellement côté serveur. Les scripts PHP, à l'instar de l'ASP (Active Server Pages) de Microsoft ou de NetData sur iSeries, sont incorporés directement avec le balisage HTML, au sein d'une page Web.


En outre, le langage PHP possède de nombreux outils facilitant sa connectivité à des bases de données comme non seulement son SGBDR (Système de Gestion de Bases de Données Relationnelles) de prédilection, MySQL, mais aussi quasiment tous les autres tels que DB2, Sybase, Oracle, ou SQL Server.


Installation :


Ce produit utilise la norme fastCGI, qui est disponible sur IBM i nativement sur une version 7 et via PTF sur une 6.1 ou 5.4

Avec cette technique le serveur Apache de IBM i peut lancer des scripts sous PASE, supprimant l'obligation d'avoir un deuxième serveur Apache de type Unix.

Important, Zend Server peut être installé, à coté de Zendcore, sans perturber le moins du monde ce dernier. Les 2 produits cohabitent parfaitement.

Pré-requis :

 

1/ vérifiez que vous avez les logiciels sous licence suivants :

Code (option) Produit
5722SS1 (33) PASE
5722SS1 (30) Qshell
5722SS1 (13) System Openness Includes
5722SS1 (34) Digital Certificate Manager
5733SC1(*base) IBM Portable Utilities For I5/OS
5733SC1 (1) OpenSSH ,OpenSST,Zlib

Le répertoire /usr/local doit exister (créez le, s'il le faut, par MKDIR) et ne doit pas être un lien symbolique

2/ vérifiez que vous avez les PTF suivantes

 

3/ Téléchargez le fichier zippé sur le site de ZEND, dézippez et transférez (en binaire) via FTP le SAVF ZSVRSAVF ou ZSVRSAVF6 dans QGPL

4/ Passez ensuite la commande


Pour Zend Server 5 : RSTLICPGM LICPGM(2ZSRVPI) DEV(*SAVF) SAVF(QGPL/ZSVRsavf)

Pour Zend Server 6 : RSTLICPGM LICPGM(6ZSRVPI) DEV(*SAVF) SAVF(QGPL/ZSVRsavf6)

Pour Zend Server 7 : RSTLICPGM LICPGM(7PHPZND) DEV(*SAVF) SAVF(QGPL/zendphp7))


nb : vous pouvez installer les trois versions du produit (5 , 6 et 7) en parallèle, les serveurs n'utilisent pas les mêmes ports IP


Version 5 ou 6

 

cela doit vous afficher l'écran de licence suivant (ici Version 5) ou équivalent


Choisissez si vous souhaitez installer MYSQL ou non (cela n'est pas possible, s'il existe déjà un répertoire /usr/local/MYSQL)


Et voilà !

 

ZendSVR7

 

 

Le sous système ZENDSVR est lancé automatiquement grâce à un travail à démarrage automatique ZS_STR_SBS ajouté à QSYSWRK.

Le serveur Apache ZendSvr ou ZendSvr6 ou Zendphp7, aussi. Vous pouvez modifier cette instance, si vous n'avez pas actuellement de serveur.

 

   --> pour modifier la configuration (/www/zendxxx/conf/httpd.conf), directive listen *:10088 ou 10080 (v6) et remplacer par le port 80


Modifiez aussi la langue du fichier fastcgi.conf qui contient à tort une config pour un OS en langue 2924 (US) , comme montré ci-dessous


              Remplacez en_US par fr_FR

 

ou bien ajouter à votre serveur apache existant :

 

LoadModule zend_enabler_module /QSYS.LIB/QHTTPSVR.LIB/QZFAST.SRVPGM

puis


AddType  application/x-httpd-php   .php
AddHandler  fastcgi-script   .php

 

Dans le même temps vous devez créer un fichier fastcgi.conf dans le même répertoire que le fichier httpd.conf


contenant

NB : pour un ZendServer V6, le répertoire est zendsvr6 et non zendsvr

NB : Pour un ZendServer V7, le répertoire est zendphp7

Quelques commentaires

Server type="application/x-httpd-php" la chaîne doit être la même que pour la directive AddType du fichier httpd.conf
CommandLine="/usr/local/ZendSvr/bin/php-cgi.bin Coordonnées du PGM PASE à lancer, remplacer Zendsvr par Zendsvr6 pour passer en V6
StartProcesses="1" Démarrer le pgm PASE à l'avance (1 = oui)
SetEnv="PHP_FCGI_CHILDREN=5 Nombre de travaux à démarrer
SetEnv="CCSID=819" CCSID des fichiers .php (SetEnv="CCSID=1208" si vos bases sont en Unicode)
SetEnv="LANG=fr_FR" Doit être le code langage de la langue primaire (2928 en France)
SetEnv="INSTALLATION_UID=20101216110903706188" recopiez la valeur de fastcgi.conf du répertoire /www/zendsvr/conf

 

 


En règle générale, testez vos droits, particulièrement si vous avez utilisé précédemment ZendCore, ce n'est plus NOBODY qui est le profil de référence mais QTMHHTTP.


En version 5

 

Relancez le serveur Apache, puis accédez à l'URL (par défaut http://<votre-as400>:10088/ZendServer)

Acceptez la licence


Fixez un mot de passe d'accès aux pages d'administration

 

Enfin, entrez votre clé, si vous en avez une, sinon le produit tournera en mode Community Edition (CE)

 

Pour finir, fermez cet assistant.

 

 

En version 6

 

Relancez le serveur Apache, puis accédez à l'URL (par défaut http://<votre-as400>:10081/) la version 6 utilise un port IP séparé pour l'administration

A la première utilisation, vous lancerez un assistant

acceptez la licence

indiquez le type d'utilisation

 


Fixez un mot de passe d'accès aux pages d'administration



Le serveur redéamarre




Vous est alors affiché le tableau du bord du serveur :

 



 

 


 

Les services sont lancés automatiquement dans le sous système ZendSvr (version 5 uniquement, en V6 voyez ici), particulièrement un travail I5_COMD faisant tourner un programme EASYCOMD (origine AURA équipement) correspondant au "I5 PHP API Toolkit" qui contient des API spécifiques à l'AS/400.

 

Attention, avec la version 5.1 Zend propose une solution de remplacement le "PHP Toolkit XML Service" écrit avec IBM , Open source et plus orienté Objets.

 

En version 6, seul le PHP Toolkit est supporté, il est basé sur le projet XMLSERVICES


Contenant les classes suivantes :

 documentation disponible à http://files.zend.com/help/Zend-Server-IBMi/php_toolkit_xml_service_functions.htm

Des exemples d'utilisation sont aussi accessibles sous /www/zendsvr/htdocs/NewTooKit/




Tous les services peuvent être Gérer depuis le menu ZSMENU (bibliothèque ZENDSVR en V5, ZENDSVR6 en V6) , option 5



 



Zend Studio propose un outil de debug, en dialogue direct avec le serveur Zend Server

Autorisez une adresse ou une plage d'adresses IP à faire du debug dans php.ini


Configuration/Zend Server


Ici toutes les adresses IP privées sont autorisées ( zend_debugger.allow_hosts dans /usr/local/zendsvr/etc/php.ini)


Sur le client ZendStudio, choisissez Outils/Personnalisation puis l'onglet "débogage"

et indiquez
Mode de débogage : serveur
URL du serveur : http://votre-as-400/


Vous pourrez alors demander l'exécution d'une page sur le serveur et lancer le debug

Sur le client Zend Studio for Eclipse

Demandez la liste des serveurs PHP, afin d'en créer un (ne travaillez pas avec le serveur par défaut qui est local):

 



Indiquez ici les coordonnées du serveur Apache pour Zend Server


Puis, lancez le debug.



 

Il ne vous reste plus qu'à écrire vos pages PHP, Voyez les éditeurs disponibles


puis voyez s'il le faut l'initiation au langage., enfin l'accès aux bases de données (Sur System i ou en plus MYSQL),

 

BoTTom

 

©AF400