Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris

Cette section contient les notes et détails spécifiques à l’installation de PHP sur les serveurs web Sun Java System Web Server, Sun ONE Web Server, iPlanet et Netscape server sur les systèmes Sun Solaris.

Vous pouvez trouver plus d’informations sur la configuration de PHP avec Netscape Enterprise Server : http://benoit.noss.free.fr/php/install-php4.html

  1. Installez les packages suivants depuis le serveur http://www.sunfreeware.com/ ou un miroir ad hoc :

| “autoconf-2.13” |
| “automake-1.4” |
| “bison-1_25-sol26-sparc-local” |
| “flex-2_5_4a-sol26-sparc-local” |
| “gcc-2_95_2-sol26-sparc-local” |
| “gzip-1.2.4-sol26-sparc-local” |
| “m4-1_4-sol26-sparc-local” |
| “make-3_76_1-sol26-sparc-local” |
| “mysql-3.23.24-beta” (si vous voulez le support MySQL) |
| “perl-5_005_03-sol26-sparc-local” |
| “tar-1.13” (GNU tar) |

  1. Assurez-vous que le path inclut bien les dossiers nécessaires : “PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin” et rendez-le accessible à vortre système avec export PATH.
  2. gunzip php-x.x.x.tar.gz (si vous avez une distribution “.gz”, ou bien allez en 4).
  3. tar xvf php-x.x.x.tar
  4. Passez dans votre dossier PHP : cd ../php-x.x.x
  5. Pour les étapes suivantes, assurez-vous que “/opt/netscape/suitespot/” correspond bien à votre installation du serveur netscape. Sinon, indiquez le chemin correct :

| ./configure –with-mysql=/usr/local/mysql \ –with-nsapi=/opt/netscape/suitespot/ \ –enable-libgcc |

  1. Faites un make puis un make install.

Après avoir fait l’installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires.

Instructions de configuration pour Sun/iPlanet/Netscape. Tout d’abord, vous aurez besoin d’ajouter des chemins dans la variable “LD_LIBRARY_PATH” pour que Netscape trouve son bonheur. Il est préférable de le faire dans le script de démarrage du serveur Netscape. Les utilisateurs Windows peuvent ignorer cette étape. Le script de démarrage est souvent situé dans : “/path/to/server/https-servername/start”. Vous aurez peut être à éditer le fichier de configuration situé dans “/path/to/server/https-servername/config/”.

  1. Ajoutez les lignes suivantes dans “mime.types” en tant qu’administrateur :

| type=magnus-internal/x-httpd-php exts=php |

  1. Éditez le fichier “magnus.conf” (pour les serveurs >= 6) ou le fichier “obj.conf” (pour les serveurs < 6) et ajoutez les lignes suivantes dans “obj.conf”. shlib peut varier en fonction de votre OS. Pour Unix, c’est quelque chose comme “/opt/netscape/suitespot/bin/libphp4.so”. Il est conseillé de placer les lignes suivantes après les lignes de “mime types init”.

Init fn=”load-modules” funcs=”php4_init,php4_execute,php4_auth_trans” shlib=”/opt/netscape/suitespot/bin/libphp4.so” Init fn=”php4_init” LateInit=”yes” errorString=”Failed to initialize PHP!” [php_ini=”/path/to/php.ini”]
(PHP >= 4.3.3) Le paramètre “php_ini” est optionnel mais, avec lui, vous pouvez placer votre “php.ini” dans le dossier de configuration de votre serveur web.

  1. Configurez l’objet par défaut dans le fichier “obj.conf” (pour les classes de serveur virtuel [version 6.0+] dans leur fichier “vserver.obj.conf”) :
    | <Object name=”default”> . . . .#NOTE this next line should happen after all ‘ObjectType’ and before all ‘AddLog’ lines Service fn=”php4_execute” type=”magnus-internal/x-httpd-php” [inikey=value inikey=value ...] . . </Object> |
    (PHP >= 4.3.3) Comme paramètres additionnels, vous pouvez ajouter quelques valeurs spéciales dans le “php.ini”. Par exemple, vous pouvez définir un spécifique “docroot=”/path/to/docroot”” où le contexte “php4_execute” est appelé. Pour les init-keys booléens, utilisez les valeurs 0/1, et non pas ““On”,”Off”,...” (cela ne fonctionnera pas correctement), e.g. “zlib.output_compression=1” au lieu de “zlib.output_compression=”On””
  2. Cela est nécessaire uniquement si vous voulez configurer un répertoire pour acceuillir des scripts PHP tout comme un répertoire “cgi-bin” :
    | <Object name=”x-httpd-php”> ObjectType fn=”force-type” type=”magnus-internal/x-httpd-php” Service fn=php4_execute [inikey=value inikey=value ...] </Object> |
    Après cela, vous pouvez configurer un répertoire dans le serveur d’administration et y assigner le style “x-httpd-php”. Tous les fichiers dans ce répertoire seront exécutés comme étant du PHP. C’est pratique pour cacher l’usage de PHP en renommant les fichiers en “.html”.
  3. Configuration de l’identification : les identifications PHP ne peuvent pas être utilisées avec aucune autre identification. TOUTES LES IDENTIFICATIONS SONT PASSEES À VOS SCRIPTS PHP. Pour configurer l’identification PHP pour tout le serveur web, ajoutez la ligne suivante à votre objet par défaut :
    | <Object name=”default”> AuthTrans fn=php4_auth_trans . . . </Object> |
  4. Pour utiliser l’identification PHP dans un seul répertoire, ajoutez ce qui suit :
    | <Object ppath=”d:\path\to\authenticated\dir\*”> AuthTrans fn=php4_auth_trans </Object> |
Note : La taille de la pile que PHP utilise dépend de la configuration du serveur web. Si vous rencontrez des crashs avec les grands scripts PHP, il est recommandé d’augmenter la taille de la pile avec la console d’administration : dans la section “MAGNUS EDITOR”.

Environnement CGI et modifications recommandées du "php.ini"

Il est important de garder en tête que iPlanet/SunONE/Netscape est un serveur web multi-threadé. Comme toutes les requêtes se situent dans le même contexte (c’est le contexte sur serveur web), et que ce contexte est unique, si vous voulez accéder à des variables comme “PATH_INFO”, “HTTP_HOST” etc., il n’est pas recommandé d’y accéder à la manière de PHP 3.x, avec la fonction getenv() ou une autre méthode (register globals, “$_ENV”). De cette manière, vous n’aurez que des valeurs d’environnement du serveur, et non pas des valeurs correctes pour le CGI.

Note : Pourquoi est-ce que les variables CGI sont invalides ?
C’est lié au fait que le processus du serveur web est lancé par l’administrateur du serveur, qui utilise le script de lancement au démarrage. En fait, il aurait fallu que vous lanciez vous-même le processus. C’est pour cela que l’environnement du serveur web contient des variables d’environnement CGI. Vous pouvez vérifier cela en lançant le serveur web depuis un autre endroit que l’administrateur du serveur : utilisez la ligne de commande Unix en tant que root : vous verrez alors qu’il n’y a pas de variables d’environnement.

Changez simplement vos scripts pour lire les variables CGI, en utilisant le tableau superglobal “$_SERVER”. Si vous avez d’autres scripts qui utilisent encore “$HTTP_HOST” et compagnie, il est recommandé d’activer l’option “register_globals” dans le “php.ini” et de changer l’ordre des variables. IMPORTANT : supprimez le ““E”” dans cette option, car vous n’en avez pas besoin pour cet environnement.

variables_order = “GPCS” register_globals = On

Utilisation particulière pour les pages d'erreurs ou les listages spécifiques de dossier (PHP >= 4.3.3)

Vous pouvez utiliser PHP pour générer des pages d’erreurs de type ““404 Not Found”” ou apparentée. Ajoutez la ligne suivante dans le fichier “obj.conf” pour chaque page d’erreur que vous souhaitez remplacer :

Error fn=”php4_execute” code=XXX script=”/chemin/vers/script.php” [inikey=value inikey=value...]

où “XXX” est le code d’erreur HTTP. Effacez toute autre directive “Error” qui pourrait interférer avec la vôtre. Si vous voulez utiliser une page pour toutes les erreurs qui existent, laissez le paramètre “code” vide. Votre script peut obtenir le code de statut HTTP dans la variable “$_SERVER[’ERROR_TYPE’]”.

Une autre possibilité est de générer une liste de dossiers personnalisée. Créez simplement un script PHP qui affiche le contenu du dossier, et remplacez la ligne “Service” par défaut par “type=”magnus-internal/directory”” dans “obj.conf” avec ceci :

Service fn=”php4_execute” type=”magnus-internal/directory” script=”/chemin/vers/script.php” [inikey=value inikey=value...]

Pour ces deux points, l’URI originale et l’URI traduite sont dans les variables “$_SERVER[’PATH_INFO’]” et “$_SERVER[’PATH_TRANSLATED’]”.

Note au sujet de [[function.nsapi-virtual.html|nsapi_virtual()** et des requêtes (PHP >= 4.3.3)

Le module NSAPI supporte désormais la fonction nsapi_virtual() (alias : virtual()), pour réaliser des sous requêtes au serveur web, et inclure le résultat dans une page. Le problème est que cette fonction utilise une fonctionnalité non documentée de la bibliothèque NSAPI. Sous Unix, ce n’est pas un problème, car le module va automatiquement rechercher les fonctions nécessaires, et les utiliser si elles sont disponibles. Sinon, nsapi_virtual() sera désactivée.

Note : Soyez prévenu : le support de nsapi_virtual() est EXPERIMENTAL !
 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright