
Comment réparer l'erreur "open_basedir" dans un script PHP
Description :
Cette erreur signifie que le script PHP essaye d'accéder à un dossier dont l'accès n'est pas autorisé. Pour des raisons de sécurité, les options PHP pour les domaines hébergés dans Plesk permettent d'accéder aux dossiers /tmp et http(s)docs uniquement par défaut. Les restrictions sont limitées par la variable PHP open_basedir pour chaque hôte virtuel, et ce séparément.Consigne :
Si vous avez besoin d'autoriser l'accès aux scripts PHP de l'hôte virtuel spécifique pour un/des dossiers supplémentaires, l'option 'open_basedir' pour l'hôte virtuel doit être redéfinie avec la nouvelle valeur du chemin d'accès, plusieurs noms de dossier sont séparés par des deux points.
Cela peut être effectué par l'utilisateur doté de privilèges root uniquement dans les fichiers vhost.conf ou vhost_ssl.confdu domaine (pour l'hôte virtuel SSL), voir l'article 'Inclure des directives dans le fichier de configuration de serveurs Web' dans la documentation de Parallels Plesk Panel pour en savoir plus.
Une fois les changements effectués, vous devez recréer des fichiers de configuration d'Apache et redémarrer le service Apache à l'aide de la commande suivante dans le shell, si le fichier . vhost(_ssl).conf est trouvé, il sera automatiquement ajouté au fichier httpd.include du domaine :
> /usr/local/psa/admin/sbin/websrvmng -v -a
Exemples :
REMARQUE : HTTPD_VHOSTS_D doit être remplacé par un chemin d'accès réel pour les répertoires d'accueil des domaines ce qui peut varier en fonction de la version et de l'OS de Parallels Plesk Panel, la valeur actuelle peut être connue à partir du fichier /etc/psa/psa.conf.ADD_PATH doit être remplacé par un chemin d'accès réel pour le dossier auquel vous avez besoin d'avoir accès.
Créez HTTPD_VHOSTS_D/domain.com/conf/vhost.conf :
<Directory HTTPD_VHOSTS_D/domain.com/httpdocs>
php_admin_value open_basedir "HTTPD_VHOSTS_D/domain.com/httpdocs:/tmp:/ADD_PATH"
</Directory>
Créez HTTPD_VHOSTS_D/domain.com/conf/vhost_ssl.conf :
<Directory HTTPD_VHOSTS_D/domain.com/httpsdocs>
php_admin_value open_basedir "HTTPD_VHOSTS_D/domain.com/httpsdocs:/tmp:/ADD_PATH"
</Directory>
Pour les sous-domaines, créez le fichier HTTPD_VHOSTS_D/domain.tld/subdomains/subdomain/conf/vhost.conf comme suit :
<Directory HTTPD_VHOSTS_D/domain.com/subdomains/subdomain/httpdocs>
php_admin_value open_basedir "HTTPD_VHOSTS_D/domain.com/subdomains/subdomain/httpdocs:/tmp:/ADD_PATH"
</Directory>
De plus, vous pouvez configurer 'open_basedir' global pour un emplacement nécessaire dans /etc/php.ini, par exemple :
Redémarrez Apache une fois php.ini changé.
source : http://kb.parallels.com/fr/432
Suivre cet article sur le forum