如你所知。你必须写open_basedir = '/var/home'
等等
我想这样写:open_basedir = '/var/home/*/'
我想要的是 php 应该为每个不同的目录限制主目录中的每个目录。
简短的问题:我怎么能open_basedir
这样写:open_basedir = 'var/home/*/'
?
非常感谢你。
如你所知。你必须写open_basedir = '/var/home'
等等
我想这样写:open_basedir = '/var/home/*/'
我想要的是 php 应该为每个不同的目录限制主目录中的每个目录。
简短的问题:我怎么能open_basedir
这样写:open_basedir = 'var/home/*/'
?
非常感谢你。
如果您想将 PHP 限制在每个用户自己的主目录中,您需要一个 PHP 设置,其中:
一个典型的案例是 CGI(或 FastCGI)设置,而不是将 PHP 作为 Apache 模块运行。然后,您可以为每个用户提供一个自定义 php.ini 文件。
顺便说一句,我尚未对其进行测试,但可能会open_basedir = "~"
按预期工作...
====== 编辑 ======
OP的评论引起的一些澄清:
在 Unix shell 中,“~”是“当前用户的主目录”的同义词,所以如果你是 john,它是“/var/home/john”,如果你是 michael,它是“/var/home/michael”。"var/home/~/" 没有特殊含义:它只是一个名为 ~ 的目录。
许多程序都使用这种 shell 约定。我不知道PHP是否这样做。
CGI 允许在服务器上执行任意程序,因此它不如静态 HTML 安全,就像滑板不如航天飞机安全一样。但我们不是在谈论执行任意程序:我们是在谈论执行 PHP 解释器。它将与 PHP 和您的环境一样安全。
如果您对该主题感兴趣,请访问 Google for FastCGI(具有增强性能的 CGI 实现)。许多托管服务提供商使用它。
你可以。您必须在指令中指定每个路径:
open_basedir = "/var/home/path1/:/var/home/path2/:/var/home/path3/"