我正在阅读有关php.ini文件读取流程的信息。我已经在php.net网站上看到了它,但我无法理解的一件事是在this page的第二段结尾处,其中说明了
In case the PHP file is outside the document root, only its directory is scanned
这是什么意思?
答案 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文件。