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.
Depuis PHP 4.3.3, vous pouvez utiliser les scripts PHP avec
le module NSAPI pour
gérer des listes de dossiers
et des pages d'erreurs personnalisées. Des fonctions supplémentaires
sont disponibles pour assurer la compatibilité avec Apache.
Pour du support sur les serverus courants, voyez la
note sur les sous-requêtes.
Vous pouvez trouvez plus d'informations sur la configuration de
PHP avec Netscape Enterprise Server :
http://benoit.noss.free.fr/php/install-php4.html
Pour construire PHP avec les serveurs web Sun JSWS/Sun ONE WS/iPlanet/Netscape, entrez
le répertoire valide d'installation pour l'option
--with-nsapi=[DIR].
Le répertoire par défaut est habituellement
/opt/netscape/suitespot/.
Lisez également le fichier /php-xxx-version/sapi/nsapi/nsapi-readme.txt.
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) |
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.
gunzip php-x.x.x.tar.gz
(si vous avez une distribution .gz, ou bien allez en 4).
tar xvf php-x.x.x.tar
Passez dans votre dossier PHP :
cd ../php-x.x.x
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 |
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.
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".
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 faut 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 |
Vous pouvez utiliser PHP pour générer des pages d'erreurs de type
"404 Not Found" ou apparanté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 votre.
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 dossier 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'].
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.