当前位置:  开发笔记 > 编程语言 > 正文

如何将PHP应用程序限制到自己的目录和自己的php.ini?

如何解决《如何将PHP应用程序限制到自己的目录和自己的php.ini?》经验,为你挑选了2个好方法。

我在我的Mac上运行多个PHP应用程序,运行OS X 10.5.6,Apache 2,PHP 5.我为每个项目设置了子域,每个子域都有一个主机文件条目,Apache配置中有虚拟目录块.所以

project1.localhost转到/ Library/WebServer/Documents/Project1
project2.localhost转到/ Library/WebServer/Documents/Project2
等...

但是,这种方法并没有真正"隔离"Web应用程序.例如,如果我包含这样的脚本:


它引用了我计算机基本目录中的脚本.所以它访问
C:/includes/include.php

有没有办法让我参考
C:/Library/WebServer/Documents/Project2/includes/include.php

基本上,使它不知道它自己的目录之外的任何东西.另外,有没有办法在每个子域的基础上使用php.ini?



1> J.C. Inacio..:

我相信每个虚拟主机都可以设置一个php.ini


    ...

    PHPINIDir /full/path/to/php/ini/


这样你就可以自定义open_basedir和其他



2> user13414..:

您可以通过在httpd.conf文件中的文件夹块中添加open_basedir指令来限制脚本查看特定文件夹树之上的内容的能力。它应该看起来像:

<目录/完整/路径/到/文件夹/包含/脚本/>

php_admin_value open_basedir“ / full / path / to / top / folder / of / desired / tree /”

一件事-如果您不以/结束路径,则为通配符匹配。换句话说,“ / var / etc / my”将匹配“ / var / etc / myFolder”以及“ / var / etc / myMothersFolder”,而“ / var / etc / my /”仅匹配该文件夹名称。

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有