1

あなたが知っているように。open_basedir = '/var/home'などを書く必要があります。

私はこのように書きたい:open_basedir = '/var/home/*/'

私が望むのは、phpがホームディレクトリにあるすべてのディレクトリを、異なるディレクトリごとに制限する必要があることです。

open_basedir短い質問: 次のように書くにはどうすればよいopen_basedir = 'var/home/*/'ですか?

どうもありがとうございました。

4

2 に答える 2

1

PHP を各ユーザーのホーム ディレクトリに制限する場合は、次のような PHP セットアップが必要です。

  1. PHP はユーザー資格情報で実行されます
  2. PHP はユーザーごとの構成を受け入れます

典型的なケースは、PHP を Apache モジュールとして実行するのではなく、CGI (または FastCGI) セットアップです。次に、各ユーザーにカスタム php.ini ファイルを提供できます。

ところで、私はそれをテストしていませんが、おそらくopen_basedir = "~"期待どおりに動作します...

======編集======

OPのコメントから生じるいくつかの明確化:

  1. Unix シェルでは、"~" は "現在のユーザーのホーム ディレクトリ" の同義語なので、あなたが john なら "/var/home/john"、あなたが michael なら "/var/home/michael" です。「var/home/~/」には特別な意味はありません: ~ と呼ばれる単なるディレクトリです。

  2. 多くのプログラムがこのシェル規約を使用しています。PHPがそうするかどうかはわかりません。

  3. CGI を使用すると、サーバー上で任意のプログラムを実行できるため、スケートボードがスペースシャトルよりも安全ではないのと同じように、静的 HTML よりも安全ではありません。しかし、任意のプログラムの実行について話しているわけではありません。PHP インタープリターの実行について話しているのです。PHP や環境と同じくらい安全です。

  4. このテーマに興味がある場合は、Google for FastCGI (パフォーマンスが強化された CGI 実装) を参照してください。多くのホスティング プロバイダーが使用しています。

于 2010-01-14T10:16:49.767 に答える
0

あなたはできる。ディレクティブで各パスを指定する必要があります。

open_basedir = "/var/home/path1/:/var/home/path2/:/var/home/path3/"
于 2010-01-14T09:49:52.173 に答える