【问题标题】:Set PHP's open_basedir for all users' public_html via mod_userdir通过 mod_userdir 为所有用户的 public_html 设置 PHP 的 open_basedir
【发布时间】:2013-05-08 12:51:40
【问题描述】:

我有一个 Apache 2 Web 服务器,它允许每个用户通过 mod_userdir 访问 public_html 目录,如下所示:

<IfModule mod_userdir.c>
    UserDir public_html
    UserDir disabled root

    <Directory /home/*/public_html>
        # [*] configuration here
    </Directory>
</IfModule>

我想另外配置 PHP 的 open_basedir 指令以禁止用户主目录之外的文件访问。对于用户jim,该指令为

php_admin_value open_basedir "/home/jim/"

问题: Apache 是否提供了一种方法来通过上面标记为 [*] 的位置的变量来执行此操作,类似于以下内容?

    <Directory /home/*/public_html>
        php_admin_value open_basedir "${APACHE_CURRENT_DIRECTORY}"
    </Directory>

【问题讨论】:

  • 我猜上面会使用/home/jim/public_html而不是/home/jim,所以我不得不写"${APACHE_CURRENT_DIRECTORY}/.."之类的东西。
  • 用户主目录之外是什么意思?父目录、子目录或其他?另外,APACHE_CURRENT_DIRECTORY 是什么?

标签: php apache2 open-basedir apache2-module


【解决方案1】:

我对 mod_php 了解不多,但这应该可以。我假设您的 APACHE_CURRENT_DIRECTORY 变量应该指向当前目录上下文,所以只需放置一个“。”会处理它(除非 mod php 不正常)。告诉我进展如何。

<Directory /home/*/public_html>
  php_admin_value open_basedir "."
</Directory>

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 2012-11-26
    • 2020-11-27
    • 1970-01-01
    • 2011-01-09
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多