Introduction
Le document présente l’installation sous Windows et les paramètres de configuration de PHP version 4.0.4.
PHP est un interpréteur permettant de générer des pages Web dynamiques. Le serveur Web doit naturellement connaître la localisation de l’interpréteur PHP.
Dans le cadre de cette documentation, le serveur Web est Apache version 1.3.12.
Installation de PHP v 4.0.4 (Serveur Web Apache v 1.3.12)
Installation de l’interpréteur PHP v 4.0.4
La version binaire (Windows 32Bits) de PHP v 4.0.4 est livrée sous forme
d’un fichier zip. La décompression des fichiers est réalisée dans le répertoire
: D:\Progs\Php\v404
Dans la suite de la documentation le répertoire précisé ci-dessus sera nommé
%PHP_ROOT%
. Des sous répertoires dans le répertoire %PHP_ROOT%
ont été
automatiquement créés au cours de la décompression des fichiers. Ces sous
répertoires sont les suivants :
%PHP_ROOT%/Browscap
%PHP_ROOT%/Dlls
%PHP_ROOT%/extensions
%PHP_ROOT%/Mibs
%PHP_ROOT%/Pdf-related
%PHP_ROOT%/pear
%PHP_ROOT%/sapi |
Inscription dans le path de l’interpréteur PHP
Dans le répertoire %PHP_ROOT%
se trouve l’interpréteur proprement dit, il
s’agit d’un fichier exécutable : php.exe
. Ce dernier doit être inscrit dans le
path de l’OS.
Pour Windows 98, la ligne ci-dessous a été rajoutée dans le fichier
autoexec.bat
(un reboot de la machine est nécessaire) :
SET PATH=%PATH%;%PHP_ROOT%
Pour Windows NT, la modification de la variable d’environnement Path
peut
être réalisée directement à partir de l’option Paramètres Panneau de
configuration Système.
Cette dernière manipulation permet également d’enregistrer dans le path la
librairie php4ts.dll
, librairie indispensable pour l’interpréteur PHP et
installée comme l’interpréteur dans le répertoire %PHP_ROOT%
. Les
documentations techniques existantes préconisent d’installer cette librairie
dans le répertoire système de l’OS, à savoir Windows\System, cette option n’est
pas choisie.
Installation des paramètres de configuration de la machine PHP
Lors de la décompression des fichiers, deux fichiers importants pour la
configuration de la machine PHP sont installés dans le répertoire %PHP_ROOT%
:
Php.ini-dist
Php.ini-optimized
Il s’agit de simples fichiers textes ini. Le fichier php.ini-dist
est un
fichier ini de base ne contenant que des valeurs par défaut pour les paramètres
par défaut de la machine PHP, le fichier php.ini-optimized
est le même fichier
ini mais à présent avec les valeurs optimales pour les paramètres de
configuration.
Dans l’installation réalisée, le fichier php.ini-dist
a été sélectionné. Ce
dernier doit être renommé en php.ini
et installé finalement dans le répertoire
C:\Windows
pour Windows 95/98 et dans le répertoire C:\Winnt
pour Windows
NT.
Les paramètres de configuration du fichier php.ini
sont décrits dans le
paragraphe 3-
Installation de la machine PHP avec Apache v 1.3.12
Les lignes ci-dessous sont inscrites dans le fichier httpd.conf
du serveur
Apache.
%APACHE_DIR\Conf\httpd.conf
ScriptAlias /phpcgi/ "d:/progs/php/v404/"
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
Action application/x-httpd-php "/phpcgi/php.exe"
Pour plus d’informations sur la configuration de la machine PHP dans un serveur Apache 1.3 : Serveur Web Apache 1.3.12 sous Windows
Paramètres de configuration de la machine PHP v 4.0.4
Les paramètres de configuration de la machine PHP sont spécifiés dans le
fichier php.ini
.
Le fichier de configuration (appelé php3.ini
dans la version 3.0 de PHP et
simplement php.ini
dans la version 4.x est lu par PHP au démarrage. Si PHP
est compilé en module, le fichier n’est lu qu’une seule fois au démarrage, au
lancement du démon HTTP. Pour la version CGI, le fichier est lu à chaque
invocation, ce qui est le cas de figure dans la présente installation.
Pour vérifier l’état de la configuration, la fonction phpinfo()
est
utilisée. Pour accéder aux valeurs de la configuration de manière individuelle,
la fonction get_cfg_var()
est prévue à cet effet.
Configuration des directives générales
Directive | Description |
---|---|
allow_url_fopen
(boolean) |
Cette option autorise l’accès au réseau des fonctions fopen() . Par
défaut, l’accès est autorisé aux procédures d’utilisation des fichiers
à distance, avec la protocoles FTP, HTTP et certaines extensions telles
que zlib. Cette option se situe dans la section "fopen wrappers" :
allow_url_fopen = On |
asp_tags
(boolean) |
Active l’utilisation des balises de type ASP <% %> , en plus des
traditionnelles balises <?php ... ?> . Cela inclut l’utilisation
des raccourcis <%=$value%> . Le support des balises ASP a été
ajouté depuis la version 3.0.4. |
auto_append_file
(string) |
Spécifie le nom d’un fichier qui sera automatiquement ajouté après le
fichier principal. Le fichier est inclus comme si il avait été appelé
avec la fonction include() . Le mot réservé NONE désactive
l’auto-appending. |
auto_prepend_file
(string) |
Spécifie le nom d’un fichier qui sera automatiquement ajouté avant le
fichier principal. Le fichier est inclus comme s’il avait été appelé
avec la fonction include() . Le mot réservé NONE désactive
l’auto-appending. |
display_errors
(boolean) |
Cette directive détermine si les erreurs doivent être affichées à l’écran au format HTML ou non |
doc_root
(string) |
Indique le dossier racine de PHP. Paramètre utilisé uniquement si il est défini. Si PHP est configué en safe-mode, aucun fichier en dehors de ce dossier ne sera accessible. |
engine
(boolean) |
Cette directive ne sert vraiment que si PHP est un module Apache. Elle sert aux sites qui veulent activer ou désactiver l’analyse des fichiers par PHP, dossier par dossier. |
error_reporting
(integer) |
Fixe le niveau d’erreur. Ce paramètre est un entier, représentant un
champ de bits.
|
open_basedir
(string) |
Limite l’espace où PHP peut ouvrir des fichiers. Lorsqu’un script
essaie d’ouvrir un fichier avec les fonctions fopen ou gzopen , la
localisation du fichier est vérifiée. Si ce fichier est hors du dossier
cité dans cette directive, PHP refusera de l’ouvrir. Tous les liens
symboliques sont résolus, et subissent aussi la restriction. La valeur
spéciale . indique que le dossier courant du script est utilisé comme
open_basedir . Sous Windows, les noms de dossier sont séparés par
des ( ; ) . Sur les autres systèmes, les dossiers sont séparés par des ( : ) .
Lorsque PHP est un module Apache, les valeurs de la directive
open_basedir des dossiers parents sont automatiquement héritées par les
fils.
Note : le support pour les dossiers multiples a été ajouté dans la
version 3.0.7
La valeur par défaut est : libre accès à tous les fichiers. |
gpc_order
(string) |
Etablit l’ordre de préséance des méthodes GET/POST/COOKIE . Par
défaut, cette directive est établie à "GPC". En affectant 'GP' à cette
directive, PHP ignorera les cookies, et écrasera toute méthode GET
utilisée par une méthode POST avec des variables du même nom. |
ignore_user_abort
(string) |
Désactivé par défaut. Si cette directive est activée, alors tous les
scripts lancés iront jusqu’à leur terme, même si le client se
déconnecte en plein milieu. Voir aussi la fonction
ignore_user_abort() . |
include_path
(string) |
Spécifie une liste de dossiers où les fonctions require() , include()
iront chercher les fichiers. Le format est le même que celui de la
variable d’environnement PATH .
Sous UNIX :
Sous Windows :
Sous Windows : la valeur pour cette directive est ., c’est-à-dire le
dossier courant. |
log_errors
(string) |
Indique où les messages d’erreur générés doivent être écrits. Cette fonction est spécifique aux serveurs. |
magic_quotes_gpc
(boolean) |
Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie ).
Lorsque magic_quotes est activé, tous les caractères ', ", \ et NUL
sont échappés avec un backslash. Si magic_quotes_sybase fonctionne
aussi, les guillemets simples seront échappés avec un autre guillement
simple, plutôt qu’un backslash. |
magic_quotes_runtime
(boolean) |
Si magic_quotes_runtime est activé, toutes les fonctions qui
retournent des données d’une source externe, y compris les bases de
données et les fichiers texte, verront leurs guillemets échappés avec
un backslash. Si magic_quotes_sybase est aussi activé, les guillemets
simples seront échappés avec un autre guillement simple plutôt qu’un
backslash. |
magic_quotes_sybase
(boolean) |
Si magic_quotes_sybase est activé, les guillemets simples seront
échappés avec un autre guillement simple plutôt qu’un backslash. |
max_execution_time
(integer) |
Fixe le temps maximal d’exécution d’un script en secondes. Cela permet d’éviter que des scripts en boucles infinies ne saturent le serveur. |
memory_limit
(integer) |
Grâce à cette option, il est possible de donner la quantité maximale de mémoire qu’un script peut allouer. Cela permet de réserver toute la mémoire d’un serveur à un seul script. |
register_globals
(boolean) |
Cette option active l’enregistrement des variables EGPCS
(Environnement, GET, POST, Cookie, Serveur), en tant que variables
globales. Cette option est surtout utile lorsqu’elle est utilisée
conjointement avec track_vars, dans ce cas il est alors possible
d’accéder à toutes les variables EGPCS grâce aux tableaux
$HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS et
$HTTP_SERVER_VARS . |
short_open_tag
(boolean) |
Active ou désactive l’utilisation des balises courtes, (<? ?> ).
Si PHP et XML sont utilisés en même temps, cette option doit être
désactivée et la forme longue doit être utilisée (<?php ?> ). |
track_errors
(boolean) |
Si cette option est activée, le dernier message d’erreur sera placé
dans la variable globale $php_errormsg . |
track_vars
(boolean) |
Si cette option est activée, lors de l’appel des méthodes GET, POST
et l’utilisation des cookies, les variables sont disponibles dans des
tableaux associatifs globaux appelés respectivement $HTTP_GET_VARS,
$HTTP_POST_VARS et $HTTP_COOKIE_VARS . |
upload_tmp_dir
(string) |
Indique le répertoire utilisé lors du chargement d’un fichier sur un serveur. Ce répertoire doit être accessible en lecture/écriture pour l’utilisateur qui lance le script PHP. |
user_dir
(string) |
Répertoire oú sont stockés les fichiers PHP dans le répertoire d’un utilisateur. Par exemple, public_html. |
warn_plus_overloading
(boolean) |
Si cette option est activée, PHP émet un warning lorsque l’opérateur plus (+) est utilisé sur une chaîne de caractères. Cela permet de réperer plus facilement les scripts qui doivent être réécrits en utilisant l’opérateur de concaténation (.) plutôt que l’opérateur (+). |
Configuration des directives mail
Directive | Description |
---|---|
smtp
(string) |
Sous Windows, adresse IP ou nom que PHP doit utiliser pour envoyer du mail avec la fonction mail() |
sendmail_from
(string) |
Sous Windows, valeur du champ "from:' qui doit être utilisée lors de l’envoi du mail |
sendmail_path
(string) |
Localisation du programme sendmail , habituellement
/usr/sbin/sendmail ou /usr/lib/sendmail . Configure essaye de
repérer la présence de sendmail par lui-même et affecte ce résultat par
défaut. En cas de problème de localisation, il est possible de définir
une valeur par défaut ici. Tout système n’utilisant pas sendmail doit
établir cette directive à la valeur du chemin du programme de substitution
qui remplace le serveur de mail, si celui-ci existe, par exemple,
Qmail. Dans ce cas la, il faut préciser :
/var/qmail/bin/sendmail . |
Configuration des directives Safe Mode
Directive | Description |
---|---|
safe_mode
(boolean) |
Cette directive active ou désactive l’option safe_mode . |
safe_mode_exec_dir
(string) |
Si l’option safe_mode est activée, system() et les autres
fonctions exécutant des programmes systèmes refusent de se lancer si
ces programmes ne sont pas placés dans ce répertoire. |
Configuration des directives de chargement des extensions
Directive | Description |
---|---|
enable_dl
(boolean) |
Cette directive n’est réellement utile que dans le cas d’une
compilation comme module apache. Il est possible d’activer le
chargement dynamique des extensions avec la fonction dl() , et cela de
manière locale à chaque serveur virtuel ou à chaque répertoire. La
principale raison qui pousse à désactiver le chargement dynamique est
un problème de sécurité. Lorsque le chargement dynamique est activé, il
est possible d’ignorer les directives safe_mode ou open_basedir .
Par défaut il est possible d’utiliser le chargement dynamique, sauf
lorsque la directive safe_mode est activée. En effet il est alors
impossible d’utiliser la fonction dl() . |
extension_dir
(string) |
Définit le répertoire dans lequel le PHP doit chercher les extensions
lors du chargement dynamique. Les extensions sont dans le répertoire
%PHP_ROOT%\Dlls par défaut.
|
extension
(string) |
Définit les extensions qui doivent être chargées lors du démarrage du
PHP. Sous Windows, les extensions à charger sont décommentées dans le
fichier php.ini . Exemple ci-dessous pour utiliser l’extension sybase-CT :
|
Configuration des directives pour les calculs mathématiques
Directive | Description |
---|---|
bcmath.scale
(integer) |
Nombre de chiffres après la virgule pour toutes les fonctions de précision mathématique arbitraire. |
Configuration des directives pour le navigateur
Directive | Description |
---|---|
browscap
(string) |
Nom du fichier de descriptif des clients HTML. Voir aussi la fonction
get_browser() |
Configuration des directives pour le driver ODBC unifié
Directive | Description |
---|---|
odbc.default_db
(string) |
Source de données OBDC à utiliser par défaut avec les fonctions
odbc_connect() ou odbc_pconnect() |
odbc.default_user
(string) |
Nom d’utilisateur par défaut avec les fonctions odbc_connect() ou
odbc_pconnect() |
odbc.default_pw
(string) |
Mot de passe par défaut avec les fonctions odbc_connect() ou
odbc_pconnect() |
odbc.allow_persistent
(boolean) |
Cette option active ou désactive les connexions persistantes à la base de données, via le canal ODBC. |
odbc.max_persistent
(integer) |
Nombre maximum de connexions persistantes autorisées à la base de données |
odbc.max_links
(integer) |
Nombre maximum de connexions (persistantes ou non), par processus, à la base de données. |
Configuration des autres directives
Il existe bien d’autres directives dans le fichier php.ini
, notamment les
directives pour les sessions nouvellement gérées depuis la version 4.x de PHP.
Ci-dessous, une liste de quelques autres directives est donnée :
sessions
mysql
msql
sybase
sybase-ct
postgres
debuggage
- …