根据脚本路径通过 open_basedir 保护 PHP

根据脚本路径通过 open_basedir 保护 PHP

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

open_basedir似乎是显而易见的选择,但我如何根据脚本的运行位置设置该参数?显然,open_basedir每个用户的值都会有所不同。

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

任何帮助或建议都值得感激!

答案1

我找到了解决方案 - 基于文件路径或请求主机的 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

答案2

假设您正在使用 Apache,您应该能够在每个 VirtualHost 实例中使用以下命令进行设置:-

php_admin_value open_basedir /path/to/restrict/to

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

http://php.net/manual/en/ini.core.php还有更多的信息。

相关内容