サイトでアバターをアップロードすると、このエラーが発生します。私は以前にそれを手に入れたことがなく、このエラーを取得するために最近変更されたものはありません...
Warning: is_writable() [function.is-writable]:
open_basedir restriction in effect.
File(/) is not within the allowed path(s):
このエラーを解決するには、httpd.confファイルを編集する必要があります。 Apache2handlerセクションディレクティブServer Rootのphpinfoで確認できるようになる前の方法。たとえば、私の場合はこのように-/ etc/httpd/httpd.conf。ファイルhttpd.confを開き、パラメーターopen_basedirの言及を見つけます。そして、それをnoneに設定します。 (php_admin_value open_basedir none)
私にとっての問題は、全体を実行しているPleskサーバーの設定値が間違っている/見つからないことでした。私はここの指示に従いました: http://davidseah.com/blog/2007/04/separate-php-error-logs-for-multiple-domains-with-plesk/
PHPを構成して、VirtualHost定義ごとに個別のエラーログファイルを作成できます。 Pleskを壊さずに設定に直接触れることはできないため、コツは設定方法を正確に知ることです。 (dv)のすべてのドメイン名には、/ var/www/vhostsに独自のディレクトリがあります。典型的なディレクトリには、次の最上位ディレクトリがあります。
cgi-bin/
conf/
error_docs/
httpdocs/
httpsdocs/
...and so on
次の行を使用して、ドメインディレクトリのconf /フォルダーにvhost.confファイルを作成します。
php_value error_log /path/to/error_log
php_flag display_errors off
php_value error_reporting 6143
php_flag log_errors on
実際のインストールに合わせて最初の値を変更します(/tmp/phperrors.logを使用しました)。 vhost.confファイルの編集が完了したら、次を使用してコンソールから設定をテストします。
apachectl configtest
…or if you don’t have apachectl (as Plesk 8.6 doesn’t seem to)…
/etc/init.d/httpd configtest
最後に、この変更を行ったことをPleskに伝えます。
/usr/local/psa/admin/bin/websrvmng -a
php file.php
でこれを実行している場合。編集する必要がありますphp.ini
このファイルを検索:
: locate php.ini
/etc/php/php.ini
そして、ファイルのパスをopen_basedir
プロパティに追加します。
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected
更新や移動後にwordpressサイトの1つでこの問題が発生しました:)
データベーステーブル 'wp_options'の 'upload_path'をチェックして、適切に編集してください...
参照しているパスは不正確であり、ワークスペースのdirectoryRootを使用していません。アクセスしたいファイルの絶対パスを作成してみてください。ここではおそらく相対パスを使用しています...
ispconfig3でこの種の問題があり、このようなエラーが発生した場合
有効なopen_basedir制限。ファイル(/ var/www/clients/client7/web15)は許可されたパス内にありません:.........
それを解決するには(私の場合)、ispconfig3のWebサイトのパネルでPHPをSuPHPに設定するだけです。
それが誰かを助けることを願っています:)
@ yogihosting's answer に加えて、DirectAdminを使用している場合は、次の手順に従います。
admin
です。ページ上部のテキストエリアに変更する構成を入力します。既存の構成ファイルを検討し、それに基づいて値を変更する必要があります。たとえば、open_basedir
が<Directory>
内に設定されている場合、関連する<Directory>
タグで変更を囲む必要があります。
<Directory "/path/to/directory">
php_admin_value open_basedir none
</Directory>
必要な変更を行った後、「保存」ボタンをクリックします。
ただし、構成ファイルを編集する別の方法があります。
注意:エラーに遭遇したり、ダウンタイムにつながる可能性があるため、ご自身の責任で次の手順を使用してください。推奨される方法は前の方法です。これは、構成ファイルを不適切に変更してエラーを表示することを防ぐためです。
/usr/local/directadmin/data/users
に移動します。リストされたユーザーから、変更するドメインに関連するユーザーに移動します。ここには、httpd.conf
ファイルがあります。それからバックアップを作成します。
cp httpd.conf httpd.conf.back
選択したエディターで構成ファイルを編集します。たとえば、既存のopen_basedir
をnone
に編集します。物を取り除こうとしないでください。ダウンタイムが発生する可能性があります。編集後にファイルを保存します。
以下のいずれかの方法を使用して、Apache Webサーバーを再起動します(必要に応じてSudo
を使用します)。
httpd -k graceful
apachectl -k graceful
Apache2 -k graceful
エラーが発生した場合は、メインの構成ファイルをバックアップファイルに置き換え、Webサーバーを再起動します。
繰り返しになりますが、最初の解決策が優先されるため、最初に2番目の方法を試してはいけません。注意事項に記載されているように、最初の方法の利点は、不適切に構成されたものを保存しないことです。
それが役に立てば幸い!
PHP IIS stackを実行していて、このエラーが発生した場合、通常は簡単な権限修正です。
Windowsサーバーを自分で管理してアクセスできる場合は、最初にこれを試してください。
書き込みに関する悲しみを与えているフォルダーに移動し、右クリックして[プロパティ]> [セキュリティ]を開きます。
フォルダーにアクセスできるユーザー、読み取り専用ユーザー、完全ユーザーを確認します。書き込みをブロックしているグループがありますか?
修正はIISセットアップに固有のものになります。特定のユーザーIUSRまたはアプリケーションプールIDで匿名認証を使用していますか?
とにかく、IUSR、IIS_IUSRS、またはアプリケーションプールIDのいずれかに新しい完全な書き込みアクセス許可を追加することになります。前述したように、これはセットアップとその方法によって異なります。あなたはこの1つでGoogleのウサギの穴に行くことができます(そのような投稿の1つ- IIS8のIIS_IUSRSおよびIUSR権限 )私にとって、私は一時フォルダまたはアップロードフォルダで完全な読み取り/書き込みを行うMACHINE_NAME\IIS_IUSRS
を使用します。
Php.iniのopen_basedir =
に追加のものを追加する必要はありません。