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