Cas 3 : Utilisation du "doc_root" ou du "user_dir"

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 majorit� des administrateurs pr�f�rent mettre en place un r�pertoire sp�cial pour les scripts qui soit uniquement accessible par le biais du binaire CGI de PHP, et donc, tous les fichiers de ce r�pertoire seront interpr�t�s et non affich�s tels quels.

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.

Vous pouvez utiliser la directive doc_root dans le fichier de configuration, ou vous pouvez affecter la variable d'environnement PHP_DOCUMENT_ROOT. Si cette variable d'environnement est affect�e, le binaire CGI de 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�fini (� l'exception du r�pertoire d�sign� par la directive user_dir Voir ci-dessous).

Une autre option possible ici est la directive user_dir. Lorsque la directive n'est pas activ�e, seuls les fichiers contenus dans le r�pertoire doc_root peuvent �tre ouverts. Ouvrir un fichier poss�dant l'url http://my.host/~user/doc.php ne correspond pas � l'ouverture d'un fichier sous le r�pertoire racine de l'utilisateur mais � l'ouverture du fichier ~user/doc.php sous le r�pertoire "doc_root" (oui, un r�pertoire commence par un tilde [~]).

Si la directive "user_dir" est activ�e � la valeur public_php par exemple, une requ�te du type http://my.host/~user/doc.php ouvrira un fichier appel� doc.php 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.php.

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".