INFOS DU MOIS  |  LE MOIS DERNIER  |  PAUSE-CAFE   |  TESTS  |   LIENS  |  AF400   |  SPLF2  |   FORUM  |  CONTACTS

 

 

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)

 

 

Copyright © 1995,2011 VOLUBIS

 

   
Voyez L'info du mois et aussi Le mois dernier | Regardez aussi nos liens | Nos cours
DeuxDesign