web-dev-qa-db-fra.com

open_basedir restriction en vigueur. Le fichier (/) ne se trouve pas dans le ou les chemins autorisés:

Je reçois cette erreur sur un avatar téléchargé sur mon site. Je ne l'ai jamais eu auparavant et rien n'a été changé récemment pour que je commence à avoir cette erreur ...

Warning: is_writable() [function.is-writable]: 
open_basedir restriction in effect. 
File(/) is not within the allowed path(s):
79
Webnet

Modifiez les paramètres open_basedir de votre compte d'hébergement et définissez-les sur aucun. Recherchez le paramètre open_basedir indiqué dans la zone "Paramètres PHP" de votre Plesk/cPanel. Réglez-le sur 'néant' dans la liste déroulante indiquée. Je les ai montrés dans la photo du panneau Plesk.

enter image description hereenter image description here

95
yogihosting

Pour résoudre cette erreur, vous devez éditer le fichier httpd.conf. Bien avant cela peut être vu dans phpinfo dans la directive de section Apache2handler Server Root. Par exemple, dans mon cas, de cette façon -/etc/httpd/httpd.conf. Ouvrez le fichier httpd.conf, recherchez la mention du paramètre open_basedir. Et définissez-le sur aucun. (php_admin_value open_basedir none)

36
Andrei

Pour moi, le problème était lié aux valeurs de configuration incorrectes/manquantes pour le serveur Plesk exécutant l’ensemble. Je viens de suivre les instructions ici: http://davidseah.com/blog/2007/04/separate-php-error-logs-for-multiple-domains-with-plesk/

Vous pouvez configurer PHP pour créer un fichier journal des erreurs distinct pour chaque définition de VirtualHost. Le truc, c’est de savoir exactement comment l’installer, car vous ne pouvez pas toucher directement à la configuration sans casser Plesk. Chaque nom de domaine de votre (dv) a son propre répertoire dans/var/www/vhosts. Un répertoire typique comprend les répertoires de niveau supérieur suivants:

cgi-bin/
conf/
error_docs/
httpdocs/
httpsdocs/
...and so on

Vous souhaiterez créer un fichier vhost.conf dans le dossier conf/du répertoire du domaine avec les lignes suivantes:

php_value error_log /path/to/error_log
php_flag display_errors off
php_value error_reporting 6143
php_flag log_errors on

Changez la première valeur pour qu'elle corresponde à votre installation réelle (j'ai utilisé /tmp/phperrors.log). Une fois que vous avez terminé d’éditer le fichier vhost.conf, testez la configuration à partir de la console avec:

apachectl configtest
…or if you don’t have apachectl (as Plesk 8.6 doesn’t seem to)…

/etc/init.d/httpd configtest

Et enfin, dites à Plesk que vous avez apporté ce changement.

/usr/local/psa/admin/bin/websrvmng -a
5
Josh P

Si vous utilisez ceci avec php file.php. Vous devez éditer php.ini Trouver ce fichier:

: locate php.ini
/etc/php/php.ini

Et ajoutez le chemin du fichier à la propriété open_basedir:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected

3
deathangel908

J'ai eu ce problème @ l'un de mes wordpress sites après la mise à jour et/ou le déplacement :)

Vérifiez dans la table de base de données 'wp_options' le 'upload_path' et éditez-le correctement ...

2
Bartuzz

Le chemin auquel vous vous référez est incorect et ne contient pas le répertoire directoryRoot de votre espace de travail. Essayez de créer un chemin absolu avec le fichier auquel vous voulez accéder, où vous utilisez probablement maintenant un chemin relatif ...

2
NDM

si vous avez ce genre de problème avec ispconfig3 et que vous avez une erreur comme celle-ci

open_basedir restriction en vigueur. Le fichier (/ var/www/clients/client7/web15) ne se trouve pas dans le ou les chemins d'accès autorisés: .........

Pour le résoudre (dans mon cas), il suffit de définir PHP sur SuPHP dans le panneau ispconfig3 du site Web.

J'espère que ça aide quelqu'un :)

2
Qlimax

En plus de réponse de @ yogihosting , si vous utilisez DirectAdmin , procédez comme suit:

  1. Accédez à la page de connexion de DirectAdmin. Son port est généralement 2222.
  2. Connectez-vous en tant qu'administrateur. Son nom d'utilisateur est admin par défaut.
  3. À partir du "Niveau d'accès" sur le panneau de droite, assurez-vous que vous êtes sur "Niveau administrateur". Sinon, changez-le.
  4. Dans la section "Fonctions supplémentaires", cliquez sur "Configurations HTTPD personnalisées".
  5. Choisissez le domaine que vous voulez changer.
  6. Entrez les configurations que vous souhaitez modifier dans la zone de texte en haut de la page. Vous devez considérer le fichier de configuration existant et modifier les valeurs en fonction de celui-ci. Par exemple, si vous voyez que open_basedir est défini dans un <Directory>, vous devriez peut-être entourer votre modification dans la balise <Directory> associée:

    <Directory "/path/to/directory">
        php_admin_value open_basedir none
    </Directory>
    
  7. Après avoir apporté les modifications nécessaires, cliquez sur le bouton "Enregistrer".

  8. Vous devriez maintenant voir vos modifications enregistrées dans le fichier de configuration si elles étaient valides.

Il existe un autre moyen d’éditer le fichier de configuration, cependant:

Attention : soyez prudent et suivez les étapes suivantes à vos risques et périls, vous risqueriez de rencontrer des erreurs ou des temps d'arrêt. La méthode recommandée est la précédente, car elle vous empêche de modifier le fichier de configuration de manière incorrecte et vous montre l'erreur.

  1. Connectez-vous à votre serveur en tant que root.
  2. Allez à /usr/local/directadmin/data/users. Parmi les utilisateurs répertoriés, accédez à l'un des domaines liés au domaine que vous souhaitez modifier.
  3. Ici, il y a un fichier httpd.conf. Faites une sauvegarde à partir de celui-ci:

    cp httpd.conf httpd.conf.back
    
  4. Maintenant, éditez le fichier de configuration avec l’éditeur de votre choix. Par exemple, éditez les open_basedir existants en none. N'essayez pas de retirer des objets, sinon vous risquez de perdre du temps. Enregistrez le fichier après édition.

  5. Redémarrez le serveur Web Apache en utilisant l’une des méthodes suivantes (utilisez Sudo si nécessaire):

    httpd -k graceful
    apachectl -k graceful
    Apache2 -k graceful
    
  6. Si vous rencontrez des erreurs, remplacez le fichier de configuration principal par le fichier sauvegardé, puis redémarrez le serveur Web.

Encore une fois, la première solution est la solution préférée et vous ne devriez pas essayer la deuxième méthode à la première fois. Comme il est noté dans la mise en garde, l'avantage de la première méthode est d'empêcher l'enregistrement de vos éléments mal configurés.

J'espère que ça aide!

0
MAChitgarha

Si vous exécutez une pile PHP IIS _ et que vous avez cette erreur, il s'agit généralement d'un correctif rapide.

Si vous administrez vous-même le serveur Windows et y avez accès, essayez ceci en PREMIER:

Accédez au dossier qui vous pose problème en écrivant et cliquez dessus avec le bouton droit de la souris> ouvrir les propriétés> sécurité.

Voir ce que les utilisateurs ont accès au dossier, ceux qui ont lu seulement et ceux qui ont plein. Avez-vous un groupe qui bloque l'écriture?

Le correctif sera spécifique à votre configuration IIS. Utilisez-vous l'authentification anonyme avec un utilisateur IUSR spécifique ou avec l'identité du pool d'applications?

Quoi qu'il en soit, vous allez finir par ajouter une nouvelle autorisation d'écriture complète pour l'un des identifiants IUSR, IIS_IUSRS ou votre identité de pool d'applications. Comme je l'ai dit précédemment, cela va varier en fonction de votre configuration et de la manière dont vous souhaitez procéder. vous pouvez descendre le trou de lapin google sur celui-ci (un tel post - autorisations IIS_IUSRS et IUSR dans IIS8 ) Pour moi, j'utilise anon avec mon identité de pool d'applications afin de pouvoir m'échapper avec MACHINE_NAME\IIS_IUSRS avec lecture/écriture complète sur tous les dossiers temporaires ou de téléchargement.

Je n'ai pas besoin d'ajouter quoi que ce soit à mon open_basedir = dans le fichier php.ini.

0
RobDigital