PHP

quelques exempleS en PHP

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.

    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.

    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

    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(INFO_GENERAL);
?>

</body>
</html>

Nous travaillerons sur une base vinicole (appellation <-> producteurs <-> vins)