web-dev-qa-db-ja.com

スクリプトパスに基づいてopen_basedirを介してPHP

サーバー上でPHPスクリプトを実行しているユーザーが何人かいますが、スクリプトがwwwディレクトリ内のファイルにのみアクセスできるようにロックダウンしたいと思います(Linuxユーザーアカウントは使用しません。したがって、ホームディレクトリはありません)。

open_basedirは当然の選択のようですが、スクリプトの実行元に基づいてそのパラメーターを設定するにはどうすればよいですか?明らかに、open_basedirの値はユーザーごとに異なります。

Ubuntu11.04でPHP5-FPM(nginxが接続するFastCGIプロセスとしてのPHP5)を実行しています

どんな助けやアドバイスもありがたいです!

4
Tak

私は解決策を発見しました-ファイルパスまたはリクエストホストに基づくphp.iniディレクティブ。 ドキュメント から:

[Host=dev.site.com]
open_basedir = /var/www/dev.site.com

または

[PATH=/var/www/dev.site.com]
open_basedir = /var/www/dev.site.com
4
Tak

Apacheを使用していると仮定すると、各VirtualHostインスタンス内で次のように設定できるはずです。-

php_admin_value open_basedir /path/to/restrict/to

ユーザーはchdirでディレクトリを変更できるため、.を使用したいという誘惑に抵抗してください。

http://php.net/manual/en/ini.core.php もう少し情報があります。

1
Andy Smith