gpt4 book ai didi

php - .user.ini 文件是否适用于子目录?

转载 作者:可可西里 更新时间:2023-11-01 14:01:55 28 4
gpt4 key购买 nike

控制文件夹特定 PHP 设置的 .user.ini 文件是否也进入子文件夹?

我正在阅读一些网站,他们建议这样做(尽管没有很多关于它的信息),但是我发现如果我从子文件夹运行脚本,它不会使用来自的设置.user.ini 文件。

我是不是遗漏了什么,或者它只是针对脚本正在执行的同一个文件夹?如果是这样,有没有办法让 php 脚本从父文件夹等中查找 .user.ini 文件?

最佳答案

是的,它应该有效。但是,我对 .user.ini 文件没有递归设置 php_value 有同样的问题。根据 php.net 上的官方(和简短)文档,它们应该递归工作(就像 .htaccess 所做的那样):

PHP scans for INI files in each directory, starting with the directory of the requested PHP file, and working its way up to the current document root (as set in $_SERVER['DOCUMENT_ROOT']). In case the PHP file is outside the document root, only its directory is scanned.

我发现 Apache 配置的尾部斜杠太多,导致 .user.ini 文件无法递归工作。

查看您的 phpinfo(),特别是 SCRIPT_FILENAME 变量。注意两个斜杠 - 应该只有一个斜杠:

$_SERVER['SCRIPT_FILENAME'] = //home/site/public_html/phpnfo.php

原因来自 apache 配置,其中包含一个尾部斜线太多。

<IfModule !mod_php5.c>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/lib/php/php-fpm.sockets/site.sock|fcgi://localhost/"
</FilesMatch>
DirectoryIndex index.php index.html index.htm
</IfModule>

Apache 配置不包含目录的尾部斜杠,因此应该将 fcgi://localhost/ 写成 fcgi://localhost,如下所示:

<IfModule !mod_php5.c>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/lib/php/php-fpm.sockets/site.sock|fcgi://localhost"
</FilesMatch>
DirectoryIndex index.php index.html index.htm
</IfModule>

修改后重启Apache/php-fpm即可。

更新:事实证明,Apache 配置中的尾部斜杠错误仍然很常见,并可能导致不同的错误和错误的 php 实践(例如设置在 DocumentRoot/var/www/网页/)。

关于php - .user.ini 文件是否适用于子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27226055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com