它是什么意思"如果PHP文件在文档根目录之外,只扫描其目录"?

时间:2017-06-30 09:49:48

标签: php php-ini

我正在阅读有关php.ini文件读取流程的信息。我已经在php.net网站上看​​到了它,但我无法理解的一件事是在this page的第二段结尾处,其中说明了

In case the PHP file is outside the document root, only its directory is scanned

这是什么意思?

2 个答案:

答案 0 :(得分:4)

除了Julian的回答之外,还要澄清一些事情。

无论PHP文件本身位于何处,服务器的默认php.ini文件(例如/path/to/default/ini/php.ini)都将始终进行扫描。之后会发生什么取决于PHP文件是否存储在文档根路径中。

在文档根路径

假设您在/path/to/doc/root/another/dir/file.php保存了PHP文件。

服务器将在以下目录中查找ini文件:

  • /path/to/root/another/dir
  • /path/to/root/another
  • /path/to/root

如果在任何这些位置找到ini文件,它们将被扫描作为默认的ini文件。

外部文档根路径

假设您在/path/outside/doc/root/file.php保存了PHP文件。

服务器将查看以下目录:

  • /path/outside/doc/root

如果在此位置找到了ini文件(例如/path/outside/doc/root/php.ini),则会将扫描为作为默认的ini文件。

答案 1 :(得分:3)

当PHP文件位于文档根目录之外时(如果文件不在文档根目录中(=您为网站放置文件的根目录)),则只扫描文件所在的目录

因此,他们将从特定PHP文件的文件夹开始,然后他们只扫描每个文件夹,每次都要扫描文件夹,直到文档根目录。如果文件不在文档根目录中,则它们只检查文件所在的目录。

所以有两种选择:

<强> 1。文件位于根目录 要么 的 2。文件不在根目录中

如果文件位于根目录中:那么它们将从调用的php文件的目录中搜索.ini文件。他们每次都会继续搜索和扫描,直到文档根目录为止。

如果文件不在根目录中:那么它们只会在被调用的php文件的目录中搜索.ini文件。