以下は php.ini の元の説明とデフォルト設定です:
; open_basedir が設定されている場合、このディレクティブは、ディレクトリごとまたは
内で使用される場合に最も意味があります。 -virtualhost Web サーバー構成ファイルごとに。
open_basedir = は、セーフ モードがオンかオフかによって *影響を受けません。
open_basedir は、ユーザーのファイルへのアクセス範囲を、通常はユーザーのホームに制限します。ディレクトリのパスは、現在のディレクトリを表す記号「.」で表すこともできます。 open_basedir で指定される制限は、実際にはディレクトリ名ではなくプレフィックスであることに注意してください。
例: 「open_basedir = /dir/user」の場合、ディレクトリ「/dir/user」と「/dir/user1」の両方に
アクセス可能です。したがって、指定したディレクトリのみへのアクセスを制限したい場合は、パス名の末尾にスラッシュを付けます。たとえば、次のように設定します:
"open_basedir = /dir/user/"
open_basedir は、Windows でディレクトリを区切るにはセミコロンを使用し、他のシステムではディレクトリを区切るには
コロンを使用することもできます。 Apache モジュールで動作する場合、親ディレクトリの open_basedir パスが自動的に継承されます。
Apache で指定したユーザーに対して独立した設定を行うには 3 つの方法があります:
(a) Apache の httpd.conf の Directory の対応する設定方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#To set複数のディレクトリがある場合は、以下を参照できます。
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) Apache の httpd.conf の VirtualHost の対応する設定方法:
php_admin_value open_basedir /usr/ local/apache/htdocs/
#複数のディレクトリを設定するには、以下を参照できます:
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) VirtualHostにopen_basedirを設定した後なので、これ仮想ユーザーは php.ini
の open_basedir 設定値を自動的に継承しないため、柔軟な構成措置を実現することが困難になるため、VirtualHost
ではこの制限を設定しないことをお勧めします。たとえば、open_basedir = を設定できます。 .: /tmp/、この設定は、
が現在のディレクトリ (つまり、PHP スクリプト ファイルが配置されているディレクトリ) と /tmp/ ディレクトリへのアクセスを許可されることを意味します。
注意: アップロード用の一時ディレクトリの場合。 php.ini で設定されているファイルは /tmp/ である場合、open_basedir を設定するときは、/tmp/ を含める必要があります。そうしないと、PHP の新しいバージョンでは「open_basedir 制限が有効です」という警告メッセージが表示されますが、move_uploaded_file() は実行されません。この関数は /tmp/ ディレクトリにアップロードされたファイルを引き続き正常に削除できますか? わかりません
ShopEx472 バージョンの設定:
open_basedir = "D:/Server;../カタログ;../インクルード;../../ホーム;../システムサイト;../テンプレート;../言語;../../言語;../../../言語;。 ./../../../ language"
その他の PHP 設定 ファイル内の open_basedir オプションの役割に関連する記事については、PHP 中国語 Web サイトに注目してください。