【发布时间】: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