Mes pages en PHP me renvoient l'erreur "open_basedir".

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.conf du 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 :





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 : 156
Date de mise en ligne : 04 avr. 2011 à 22:14

Les Catégories

Une Pub