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):
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.
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)
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
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
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 ...
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 ...
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 :)
En plus de réponse de @ yogihosting , si vous utilisez DirectAdmin , procédez comme suit:
admin
par défaut.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>
Après avoir apporté les modifications nécessaires, cliquez sur le bouton "Enregistrer".
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.
/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.Ici, il y a un fichier httpd.conf
. Faites une sauvegarde à partir de celui-ci:
cp httpd.conf httpd.conf.back
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.
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
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!
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.