【问题标题】:How to set for specific directory open_basedir如何为特定目录设置 open_basedir
【发布时间】:2012-10-28 18:37:31
【问题描述】:

我有一个目录/htdocs/unsecured,我想限制该目录或其子目录中的任何内容访问该目录之外的任何内容。我在哪里以及如何只为这个目录设置open_basedir

【问题讨论】:

    标签: php apache


    【解决方案1】:

    您可以在 Apache 配置文件 php.ini 或 .htaccess 文件中设置 open_basedir

    我通常在 /etc/httpd/conf/httpd.conf 等 apache 配置文件中设置它。

    您将拥有当前域/虚拟主机的目录结构,您可以直接在其中添加该行:

    <VirtualHost 123.123.123.123:80>
        <Directory /htdocs/unsecured>
            php_admin_value open_basedir "C:/htdocs/unsecured"
        </Directory>
    </VirtualHost>
    

    注意:123.123.123.123 是您的域的 IP 地址并且此示例块可能会为此遗漏 大量数据配置仅显示 open_basedir 所需的内容。

    在 php.ini 中,您可以在更一般的级别上执行此操作(它将应用于您服务器上的 每个 域):

    open_basedir = "/htdocs/unsecured"
    

    在 .htaccess 中,你应该可以使用以下内容(虽然我没有测试过):

    php_value open_basedir "/htdocs/unsecured"
    

    编辑(Windows 路径)
    根据评论,您正在 Windows 上运行 xammp(而不是使用虚拟主机)。有了这些信息,我建议将您的 open_basedir 规则放入您的 php.ini 文件中。这应该(希望)对你有用:

    open_basedir = "C:\xampp\htdocs\unsecured"
    

    在 linux 中,: 是字段分隔符。在 Windows 中,; 是分隔符 - 所以这个应该可以工作,但我无法亲自测试。

    【讨论】:

    • 好的,但是我使用什么样的路径? /path/to/your/site 是什么?它是一台 Windows 机器,所以这个目录的路径是 E:\xampp\htdocs\unsecure 所以我要用这个替换 /path/to/your/site 吗?路径和 open_basedir 中作为分隔符的冒号怎么样?还是 /path/to/your/site 相对于 htdocs 目录?我使用正斜杠还是反斜杠?我应该在路径周围使用引号吗?我在文档中查看了 open_basedir,它非常模糊
    • @L84 /path/to/your/site 指的是一台配置了多个虚拟主机的机器,假设/htdocs/unsecure 与您的站点无关。如果是,您可以改用它。在 Windows 中,您应该可以使用像 open_basedir = "C:\xampp\htdocs\unsecure" 这样的反斜杠来设置它,但我通常会看到它使用正斜杠(如在 linux 中):open_basedir = "C:/xampp/htdocs/unsecure"。我在 Windows 上工作不多,所以我建议反复试验(可悲,但确实如此)。是的,我建议在路径周围加上引号(虽然不是必需的)。
    • 我不知道在这种情况下虚拟主机或站点是什么。我只是把所有东西都放在/htdocs 中。我不知道如何为这个目录设置php_admin_value open_basedir,因为路径有冒号,冒号也是分隔符。没关系,我在文档中看到在 Windows 上使用了分号。不过,糟糕的文档。
    • 很好的提示,谢谢!但这也会阻止shell_exec("ls /")吗?
    • 这个参数不能在.htaccess中设置
    【解决方案2】:

    您也可以在 php.ini、httpd.conf 或运行时change the open_basedir

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2013-12-07
      相关资源
      最近更新 更多