J'ai un répertoire /htdocs/unsecured
et je veux limiter tout ce qui se trouve dans ce répertoire ou ses sous-répertoires de tout accès en dehors de ce répertoire. Où et comment définir open_basedir
pour ce répertoire uniquement?
Vous pouvez définir open_basedir
dans votre fichier de configuration Apache, php.ini ou dans un fichier .htaccess.
Je règle normalement cela dans un fichier de configuration Apache tel que /etc/httpd/conf/httpd.conf.
Vous aurez une structure de répertoire pour votre domaine actuel/virtual-Host et vous pouvez ajouter la ligne directement dans cet emplacement:
<VirtualHost 123.123.123.123:80>
<Directory /htdocs/unsecured>
php_admin_value open_basedir "C:/htdocs/unsecured"
</Directory>
</VirtualHost>
Remarque: Le 123.123.123.123
est l'adresse IP de votre domaine et cet exemple de bloc laisse potentiellement beaucoup de données pour cette configuration, indiquant uniquement ce qui est nécessaire pour open_basedir
.
Dans php.ini, vous pouvez le faire à un niveau beaucoup plus général (et cela s’appliquera à chaque domaine sur votre serveur) avec:
open_basedir = "/htdocs/unsecured"
Dans .htaccess, vous devriez pouvoir utiliser les éléments suivants (bien que je n’aie pas encore testé):
php_value open_basedir "/htdocs/unsecured"
EDIT(chemin Windows)
Selon un commentaire, vous exécutez xammp sous Windows (sans utiliser d’hôtes virtuels). Avec cette information, je suggérerais de mettre votre règle open_basedir
dans votre fichier php.ini
. Cela devrait (espérons-le) fonctionner pour vous:
open_basedir = "C:\xampp\htdocs\unsecured"
Sous Linux, un :
est un séparateur de champs. Dans Windows, le ;
est le séparateur - donc devrait fonctionner, mais je ne peux pas le tester personnellement.
Vous pouvez changer le open_basedir dans le fichier php.ini, dans votre fichier httpd.conf ou lors de l'exécution.