Comment réparer l'erreur open_basedir dans un script PHP

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 :





open_basedir = "'/tmp"'





Redé'marrez Apache une fois php.ini changé'.



source : http://kb.parallels.com/fr/432

Nombre de Lectures : 199
Date de mise en ligne : 03 mars 2011 à 20:20

Les Catégories

Une Pub