Par défaut, PHP est compilé en version CGI. Cela crée
un interpréteur de commande qui peut être utilisé soit
pour le traitement CGI, soit pour les scripts non relatifs au web.
Si PHP peut être incorporé au serveur web que vous utilisez
en tant que module, de manière générale c'est cette solution
que vous devriez adopter pour des raisons de performances. Cependant, la version CGI
permet aux utilisateurs sous Apache de lancer des scripts PHP sous leurs UID
respectives.
| Avertissement |
En utilisant le mode CGI,
votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement
notre section sur la sécurité en mode CGI
pour apprendre comment vous défendre contre ces attaques. |
Avec PHP 4.3.0, d'importants ajouts ont été faits à PHP.
une nouvelle SAPI, appelée CLI, existe aussi et porte le même
nom que la version CGI. Ce qui est installé en tant que
{PREFIX}/bin/php dépend de votre ligne de
configuration. Tout ceci est décrit en détails dans la partie
du manuel intitulée Utiliser PHP
en ligne de commande. Veuillez vous y référer pour de
plus amples informations.
Si vous avez compilé PHP comme programme CGI, vous pouvez tester
votre produit en tapant : make test. C'est toujours
une bonne chose de tester le résultat d'une compilation.
Cela vous permet de repérer des problèmes entre PHP et votre
plate-forme, plutôt que d'attendre qu'ils surviennent.
Si vous avez compilé PHP 3 comme programme CGI, vous
pouvez évaluer ses performances avec la commande
make bench. Notez que si le
safe mode est activé
(par défaut), vous risquez de voir l'évaluation
s'arrêter une fois les 30 secondes réglementaires
écoulées. En effet, la fonction
set_time_limit() ne peut pas être utilisée
si le safe mode fonctionne.
Utilisez l'option max_execution_time
pour contrôler le temps d'exécution de vos scripts.
make bench ignore le fichier de configuration file.
Note :
make bench n'est disponible qu'en PHP 3.
Certaines variables d'environnement
fournies par les serveurs web ne sont pas disponibles dans les
spécifications CGI/1.1 actuelles.
Seules les variables suivantes sont définies, et les
autres doivent être considérées comme spécifiques aux serveurs
web :
AUTH_TYPE,
CONTENT_LENGTH,
CONTENT_TYPE,
GATEWAY_INTERFACE,
PATH_INFO,
PATH_TRANSLATED,
QUERY_STRING,
REMOTE_ADDR,
REMOTE_HOST,
REMOTE_IDENT,
REMOTE_USER,
REQUEST_METHOD,
SCRIPT_NAME,
SERVER_NAME,
SERVER_PORT,
SERVER_PROTOCOL et
SERVER_SOFTWARE.