【问题标题】:Access PHP Browscap outside web directory FastCGI在 Web 目录 FastCGI 之外访问 PHP Browscap
【发布时间】:2012-02-21 07:25:26
【问题描述】:

我正在考虑启用 FastCGI 来处理我所有域上的 PHP 执行。前几天我试过了,我的 PHP 配置遇到了一个问题。

我的服务器上目前有一个 php-browscap.ini,我的所有域都在使用它。它位于我的公司域目录中,如下所示:

browscap = /var/www/vhosts/mycompany.com/httpdocs/scripts/php_browscap.ini

为了让它工作,我通常不需要做任何事情,因为 apache 用户可以访问所有的 web 目录。

但是,既然用户必须是特定于域的,我在访问 browscap 时遇到了权限问题。有没有人知道我可以在我的 PHP 配置中实施的修复程序以允许访问另一个域目录?

我不想在每个域目录中放置一个 browscap 文件,尽管我知道这是一种解决方法

如果我将文件放在 web 目录之外,它会起作用吗?

e.g. /company/php-browscap.ini

“company”是我根目录中的一个自定义文件夹,其中包含我的服务器的脚本。我没有尝试过,因为它需要进行很多更改,但如果我知道它会起作用,那么我会试一试。

【问题讨论】:

  • 如何将其存储在所有用户都具有只读访问权限的目录中,例如 /usr/lib/php/browsecap.ini 或 /usr/share/browsecap.ini 或类似的东西?然后修改 PHP.ini 指向那里,所有站点都应该可以毫无问题地使用它。
  • 这就是我所说的,如果我知道它会起作用,我会这样做。您是说如果用户具有适当的权限,则允许 FastCGI 访问“example.com”目录之外的文件?
  • 如果权限正确,它可以访问服务器上任何地方的文件。只要文件和目录设置了全局读取权限,它就可以读取它们(这对于这些目录来说是典型的)。您需要超级用户访问权限才能将文件放在该位置,但任何人都可以读取它,但不能修改或删除。
  • 您在从主目录读取它时遇到问题,因为主目录通常没有全局读取权限(它们是 chmod 711 [no world read/write])。
  • 好的,我需要知道的就这些。您可以将其放在答案中,以便我可以将其标记为已回答吗?非常感谢。由于您能够如此迅速地回答这个问题,您能否看一下我即将发布的另一个稍微相关的问题。它与“open_basedir”和使用 FastCGI 跨域移动文件有关?

标签: php linux apache fastcgi browscap


【解决方案1】:

如果您将 browsecap.ini 文件放在具有全局读取权限的目录中(例如 755 drwxr-xr-x),则 FastCGI(或任何用户)可以读取该文件。这样的目录可以是/usr/lib/php(如果存在)或/usr/share

如果您将文件 chmod 为 744,那么所有用户都可以读取它,但不能删除或修改它,只要所有父目录也是世界可读的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-21
    • 2012-11-24
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2012-03-27
    • 2012-07-24
    • 2023-04-11
    相关资源
    最近更新 更多