PHP
-
PHP, le plus répandu des langages de script
sur le Net.
Il fonctionne un peu sur le principe de Net.data, mais
sur toutes les plateformes (Windows, Linux et la plupart
des Unix)
Pour le faire tourner sur ISeries, il vous faut :
- Apache sur Iseries
- Soit :
- I5/OS en V5R4 ou suivantes, voyez alors Zend
Core for I5/OS puis Zend Server, en fin de page.
- un OS/400 avec PASE en V5R10 (c'est
alors un produit facturable) ou en V5R20 (PASE est gratuit)
- ensuite,
- Aller chercher une distribution compilée
pour Iseries (voyez le site http://www.deloli.net/)
- ou installer PERL et un compilateur C pour
AIX sur l'AS/400, puis télécharger
les sources depuis le site php.net
- Dans tous les cas une bonne connaissance d'Apache
et de la structure IFS sera un atout.
- Voyez e redbook "Bringing
PHP to your IBM eserver Iseries server"
- Notre serveur Apache a été longtemps configuré
avec les directives suivantes
ScriptAlias /php-bin/ /QOpenSys/php/bin/
#
définition d'un nouveau type mime
AddType application/x-httpd-php .php
# forcer l'exécution d'un pgm CGI
pour le type php.
Action application/x-httpd-php /php-bin/php
<Directory /QOpenSys/php/bin>
Options +ExecCGI
order allow,deny
allow from all
</Directory>
|
- PHP va utiliser CLI (les routines odbc de
l'OS/400) pour se connecter à la base.
Cette technique ne peut pas être utilisée en même
temps que NETDATA, ce dernier utilise aussi CLI et vous risquez de
recevoir un code erreur indiquant qua la connexion est déja
réalisée, deux parades sont envisagables
- 1/ passer par un phase d'authentification, qui va
forcer un nouveau job sur le serveur. Si l'authentification pour php et
netdata est différente, les serveurs de traitement seront
différents, donc la connexion unique.
- 2/ rediriger vers un autre serveur par redirect ou redirectmatch
(sous apache).
Depuis le 2 mai 2006
Utiliser Zend
Core for I5/OS (qui a fonctionné sur notre
machine pendant 5 ans) avec un serveur Apache sous Pase.
L'interet du serveur Apache2 sous Pase (c'est véritablement
celui d'UNIX) pour Zend, c'est de réutilsier les
routines existantes, particulièrement celles permettant
de lancer PHP en mode module, ce qui offre les meilleures
performances
Ajoutez alors à votre config Apache I5/OS
LoadModule proxy_module
/QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
LoadModule proxy_http_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
LoadModule proxy_connect_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
LoadModule proxy_ftp_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
puis
ProxyPass
/php http://localhost:8000/php
ProxyPassReverse
/php http://localhost:8000/php
Qui demande à ce que chaque requête dont l'URL
commence par php
soit redirigée vers le port 8000 (l'Apache
d'unix)
Nouveau,
en Mars 2011
Zend propose une nouvelle version ZendServer plus robuste, offrant plus de fonctionnalités, utilisant la technique FastCgi
Ajoutez alors à votre config Apache IBM i
LoadModule zend_enabler_module /QSYS.LIB/QHTTPSVR.LIB/QZFAST.SRVPGM
puis
AddType application/x-httpd-php .php
AddHandler fastcgi-script .php
Qui demande à ce que chaque demande de fichier à l'extension .php soit traitée par fastgi-script
Dans le même temps, créez un fichier fastcgi.conf, contenant
| 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 |
| 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="LANG=fr_FR" |
Doit être le code langage de la langue primaire (2928 en France) |
Notre serveur volubis.fr fonctionne avec cette nouvelle version depuis Avril 2011
- et voici le premier test
<html>
<head>
<title>PHP</title>
</head>
<body>
<?PHP
print phpinfo();
?>
</body>
</html>
|
Nous travaillerons sur une base vinicole (appellation
<-> producteurs <-> vins)
- Requête simple, liste des appellations (50
premières lignes uniquement) :
- Requête sur le fichier producteurs,
après saisie d'un code appellation
- Lancer la démo IBM (initialement
prévue pour linux, mais qui fonctionne aussi sous PASE)
Copyright © 1995,2011 VOLUBIS
|
|