Voici un éclaircissement sur
l'utilisation des directives de configuration.
-
include_path
string
-
Spécifie une liste de répertoires où les fonctions
require,
include,
fopen(), file(),
readfile() et file_get_contents()
chercheront les fichiers. Le format est identique à la variable d'environnement
système PATH : une liste de répertoires séparés par deux
points (:
) sous Unix ou par un point-virgule
(;
) sous Windows.
PHP considère chaque entrée du chemin d'inclusion séparément lors de la
recherche des fichiers à inclure. Il va vérifier le premier chemin,
et s'il ne trouve pas le fichier, il va vérifier le chemin suivant,
jusqu'à ce qu'il trouve le fichier à inclure ou bien retourner une
alerte de type
E_WARNING
ou de type E_ERROR
.
utilisant la fonction set_include_path().
Exemple #1 include_path sous Unix
include_path=".:/php/includes"
Exemple #2 include_path sous Windows
include_path=".;c:\php\includes"
L'utilisation d'un point (.
) dans le chemin
d'inclusion vous permet de faire des inclusions relatives au
répertoire courant. Cependant, il est plus efficace d'inclure
explicitement un fichier avec include './file'
,
que de demander à PHP de vérifier le dossier courant à chaque inclusion.
Note:
Les variables ENV
sont aussi disponibles dans les
fichiers .ini. Aussi, il est possible de faire référence au dossier
home en utilisant la syntaxe ${LOGIN}
et ${USER}
.
Les variables d'environnement peuvent varier suivant les APIs Serveur, tout
comme elles peuvent varier suivant les environnements.
Exemple #3 include_path sous Unix en utilisant la variable d'environnement ${USER}
include_path = ".:${USER}/pear/php"
-
open_basedir
string
-
Limite les fichiers pouvant être accédés par PHP à une architecture
de dossiers spécifique, incluant le fichier lui-même.
Lorsqu'un script tente d'accéder à un fichier avec, par exemple, la
fonction include ou la fonction fopen(),
le chemin vers le fichier est analysé. Lorsque le fichier se trouve à l'extérieur
de l'architecture de dossiers spécifié, PHP refusera d'y accéder. Tous les
liens symboliques sont résolus, aussi, il n'est pas possible d'outre-passer
cette restriction avec un lien symbolique. Si le fichier n'existe pas, alors
le lien symbolique ne pourra être résolu et le nom du fichier est comparé avec
l'open_basedir.
L'option open_basedir peut affecter plus que les
fonctions du système de fichiers ; par exemple, si
MySQL
est configuré pour utiliser le driver
mysqlnd
, LOAD DATA INFILE
sera affecté
par l'option open_basedir. Le plupart des extensions
de PHP utilise l'option open_basedir
de cette façon.
La valeur spéciale .
indique que le dossier courant du script sera utilisé comme dossier
de base.Ceci est cependant légèrement dangereux dans le sens où le dossier
courant peut être facilement changé grâce à la fonction
chdir().
Dans le fichier httpd.conf, open_basedir
peut être désactivée (i.e. pour certains hôtes virtuels) de la
même façon
que n'importe quelle directive de configuration avec
"php_admin_value open_basedir none
".
Sous Windows, séparez les dossiers avec un point-virgule. Sous tous les
autres systèmes, séparez les dossiers avec des deux-points. Lors de l'utilisation
d'Apache en module, les chemins de l'open_basedir depuis
les dossiers parents sont maintenant automatiquement hérités.
La restriction spécifiée avec l'open_basedir est
un nom de dossier, et non pas un préfixe.
Par défaut, tous les fichiers peuvent être ouverts.
Note:
open_basedir peut être affinée
au moment de l'exécution. Ceci signifie que si open_basedir
est définie à /www/
dans le fichier php.ini,
un script peut affiner la configuration en /www/tmp/
au moment de l'exécution en utilisant la fonction ini_set().
Lors d'un parcours de plusieurs dossiers,
vous pouvez utiliser la constante
PATH_SEPARATOR
suivant le système d'exploitation.
Note:
Utiliser open_basedir définira realpath_cache_size
à 0
et ainsi désactive le cache realpath.
Attention
open_basedir
est juste mesure de protection supplémentaire,
et n'est en aucun cas exhaustive, et ne peut donc pas être dépendu quand
la sécurité est nécessaire.
-
doc_root
string
-
Le dossier racine de PHP sur le serveur. Uniquement utilisé si
non vide.
Si PHP n'a pas été compilé avec FORCE_REDIRECT, vous
devez définir le doc_root si vous utilisez
PHP en tant que CGI sous n'importe quel serveur web (autre que
IIS). Alternativement, vous pouvez utiliser la configuration
cgi.force_redirect.
-
user_ini.cache_ttl
int
-
-
user_ini.filename
string
-
-
user_dir
string
-
Le nom de base du répertoire utilisé dans un répertoire
utilisateur pour les fichiers PHP, par exemple,
public_html.
-
extension_dir
string
-
Spécifie le répertoire dans lequel PHP doit chercher des extensions
externes à charger. Il est recommandé de spécifier un chemin absolut.
Voir aussi enable_dl et
dl().
-
extension
string
-
Quelles extensions doivent être chargées dynamiquement lors du
démarrage de PHP.
-
zend_extension
string
-
Nom de l'extension Zend chargeable dynamiquement (par exemple
XDebug) à charger lors du démarrage de PHP.
-
cgi.check_shebang_line
bool
-
Contrôle si PHP CGI vérifie la ligne commençant par
#!
(shebang) en haut du script exécuté. Cette ligne
est nécessaire si le script est destiné à être exécuté en mode autonome
et via un PHP CGI. PHP en mode CGI
ne lit pas cette ligne et ignore son contenu si cette directive est active.
-
cgi.discard_path
bool
-
Si activé, le binaire PHP CGI peut être placé en dehors de l'arbre web en toute
sécurité et les personnes ne seront pas capables de contourner la sécurité .htaccess.
-
cgi.fix_pathinfo
bool
-
Fournit un réel PATH_INFO
/
PATH_TRANSLATED
pour CGI.
Le comportement précédent de PHP était de définir
PATH_TRANSLATED
en SCRIPT_FILENAME
et de ne pas remplir PATH_INFO
. Pour plus d'informations
sur PATH_INFO
, lisez les spécificités CGI.
Si définie à 1
, PHP CGI fixera ce
chemin suivant les spécifications. Si définie à 0
, PHP
appliquera l'ancien comportement. Par défaut, cette directive est activée. Vous
devriez modifier vos scripts pour utiliser SCRIPT_FILENAME
à la place de PATH_TRANSLATED
.
-
cgi.force_redirect
bool
-
cgi.force_redirect est nécessaire pour des raisons de sécurité
lors de l'utilisation de PHP en mode CGI sous la plupart des
serveurs web. Si vous ne la définissez pas, PHP l'activera
automatiquement par défaut. Vous pouvez la désactiver
à vos risques et périls.
Note:
Utilisateurs de Windows : Lors de l'utilisation de IIS,
cette option doit est désactivée ;
pareil pour OmniHTTPD et Xitami.
-
cgi.nph
bool
-
Si cgi.nph est activé, il forcera CGI à toujours envoyer le Status: 200
avec chaque requête.
-
cgi.redirect_status_env
string
-
Si cgi.force_redirect est activé et que vous ne tournez pas sous
un serveur web Apache ou Netscape (iPlanet), vous
devriez avoir besoin de définir un nom de
variable d'environnement que PHP utilisera pour voir si tout
est correct pour continuer l'exécution.
Note:
La définition de cette variable peut avoir
des conséquences sur la sécurité.
Sachez ce que vous faites avant de faire
cela.
-
Dit à PHP quel type d'en-tête doit être utilisé lors de l'envoi
du code réponse HTTP. Si définie à 0, PHP enverra un en-tête
"Status:" (» RFC 3875)
qui est supporté par Apache et les
autres serveurs web. Lorsque définie à -1, PHP enverra un
en-tête répondant à la spécification de la
» RFC 2616.
Si cette option est activée, et que vous exécutez PHP en environnement CGI (e.g. PHP-FPM),
vous ne devriez pas utiliser les en-têtes de réponse HTTP "status" RFC 2616, mais plutôt
utiliser l'équivalent RFC 3875, i.e. au lieu de l'en-tête ("HTTP/1.0 404 Not found"), utilisez
("Status: 404 Not Found").
Laissez ce paramètre à 0 à moins que vous sachiez parfaitement ce que vous faîtes.
-
fastcgi.impersonate
string
-
FastCGI sous IIS (sur les systèmes d'exploitation basés sur
WINNT) supporte la possibilité de déterminer la marque de
sécurité du client appelant. Cela permet à IIS de définir le
contexte de sécurité sur lequel la requête est exécutée.
mod_fastcgi sous Apache ne supporte actuellement pas cette
fonctionnalité (03/17/2002). Définie à 1 si vous utilisez IIS.
Par défaut, vaut 0.
-
fastcgi.logging
bool
-
Active la journalisation SAPI avec FastCGI. Activé par défaut.