通过基于脚本path的open_basedir保护PHP

我有几个用户在服务器上运行PHP脚本,我想locking它,使他们的脚本只能访问他们的www目录中的文件(它不使用Linux用户帐户,所以没有主目录) 。

open_basedir似乎是一个明显的select,但我怎么能根据脚本运行的位置来设置该参数? 很明显, open_basedir的值对于每个用户都是不同的。

我在Ubuntu 11.04上运行PHP5-FPM-PHP5作为nginx连接的FastCGI进程

任何帮助或build议表示赞赏!

我发现了解决scheme – 基于文件path或请求主机的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 

假设你正在使用Apache,你应该可以在每个VirtualHost实例中设置它:

 php_admin_value open_basedir /path/to/restrict/to 

抵制使用的诱惑. ,因为用户仍然可以使用chdir更改目录。

http://php.net/manual/en/ini.core.php也有一些信息。