Directive php.ini "doc_root =" et "user_dir =" comment les configurer ?
Code:
1 2
| ; Vide sur le php.ini d'origine. Je laisse à vide, le comportement par défaut est appliqué par PHP.
doc_root = |
QUEL EST LE COMPORTEMENT PAR DEFAUT ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ;Définition en PHP5.
;Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide.
; Si PHP est configuré avec le safe mode, aucun fichier n'est servi en dehors de ce répertoire.
; 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.
; Définition en PHP4.
; Ajouter un contenu interactif dans votre serveur web, comme des scripts ou des exécutables, est souvent considéré comme une pratique non-sécurisée.
; Si, par erreur le script n'est pas exécuté mais affiché comme une page HTML classique, il peut en résulter un vol de propriété intellectuelle ou
; des problèmes de sécurité à propos des mots de passe notamment.
; Donc, la plupart des administrateurs préfèrent mettre en place un répertoire spécial pour les scripts qui est uniquement accessible par le biais du binaire CGI du PHP, et donc,
; tous les fichiers de ce répertoire seront interprétés et non affichés tels quel.
; Aussi, si vous ne pouvez pas utiliser la méthode présentée ci-dessus, il est nécessaire de mettre en place un
; répertoire "doc_root" différent de votre répertoire "document root" de votre serveur web. |
En l'occurence, on parle de quel fichier / dossier / configuration pour le "document root" du serveur ? A quoi sert t'il ce "document root" ?
Un autre fichier à configurer pour documentRoot.
il faut aller dans /etc/apache2/sites-available et modifier le fichier DEFAULT là ou il est indiqué "documentRoot". On y remplace /var/www par le chemin de son choix.
Ensuite on relance apache2: /etc/init.d/apache2 restart
& / ou :
configuration /etc/httpd/conf/httpd.conf
Pourquoi définir un doc_root différent ?
Les scripts PHP mis en ligne fonctionneront t'ils encore si la directive doc_root est configurée ?
Code:
1 2
| ; Vous pouvez utiliser la directive ini.doc-root dans le fichier de configuration
; ou vous pouvez affecter la variable d'environnement PHP_DOCUMENT_ROOT. |
C'est quoi la variable d'environnement PHP_DOCUMENT_ROOT ? Comment la configurer ?
Code:
1 2 3
| ; Si cette variable d'environnement est affectée, le binaire CGI du PHP construira toujours le nom de fichier à ouvrir avec
; doc_root et le "path information" de la requête, et donc vous serez sûr qu'aucun script n'est exécuté en dehors du répertoire prédéfinit.
; (à l'exception du répertoire désigné par la directive user_dir). |
Je reprend :
- QUEL EST LE COMPORTEMENT PAR DEFAUT DE doc_root =
- C'est quoi le document root du serveur ? Dans Vhost ?
- Pourquoi définir un doc_root différent ?
- Les scripts PHP en ligne fonctionneront t'ils encore ?
- C'est quoi la variable d'environnement PHP_DOCUMENT_ROOT ?
Pouvez vous m'aider a mieux comprendre les 2 directives dans un contexte d'utilisation ?
Merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| user_dir =
; extension_dir = "./"
; Une autre option possible ici est la directive ini.user-dir. Lorsque la directive n'est pas
; activée, seulement les fichiers contenues dans le répertoire doc_root peuvent être ouverts. Ouvrir un fichier
; possédant l'url `<a href="http://my.host/~user/doc.php3" target="_blank">http://my.host/~user/doc.php3</a>' ne correspond pas à l'ouverture d'un fichier sous le répertoire
; racine de l'utilisateur mais à l'ouverture du fichier `~user/doc.php3' sous le repertoire "doc_root" (oui, un
; répertoire comment par un tilde [~]).
; Si la directive "user_dir" est activée à la valeur `public_php' par exemple, une requête du type
; <a href="http://my.host/~user/doc.php3" target="_blank">http://my.host/~user/doc.php3</a>' ouvrira un fichier appelé `doc.php3' sous le répertoire appelé `public_php'
; sous le répertoire racine de l'utilisateur. Si le répertoire racine des utilisateurs est `/home/user', le fichier
; exécuté sera `/home/user/public_php/doc.php3'.
; user_dir et doc_root sont deux directives totalement indépendantes et donc vous pouvez contrôler l'accès
; au répertoire "document root" séparément des répertoires "user directory". |