我可以在PHP中的文档根外放置一个.user.ini文件吗?



我有一个我创建的PHP Web应用程序,该应用程序在SRC,供应商和Web等文件夹中组织了,其中将'Web'设置为我的服务器上的文档root。这样做的原因是防止访问" Web"中的任何其他文件。

我正在使用.user.ini文件来简单地修改某些全局设置,但是当我将其放置在文档root(Web的父母)的一个级别时,根本没有触发的配置设置。当我将其放入"网络"中时,一切都很好。

这样做的原因是什么?我有什么方法可以像我提出的那样使.user.ini工作?

安全明智的明智,我只想这样做,而不是否认与.htaccess在网络中的访问。

我使用快速CGI作为我的PHP处理程序,不想更改。

简短答案,似乎您无法将文件放在指定目录之外。

根据http://php.net/manual/en/configuration.file.per-user.php,

除了主php.ini文件外,php扫描每个文件中的ini文件 目录,从请求的PHP文件的目录开始,然后 工作到当前文档root(如 $ _server ['document_root'])。如果PHP文件在外面 文档根,只扫描其目录。

dot文件不应由Web Server

提供

但是,您的Web服务器根本不应使用/^/文件。如果您的Web服务器阻止了以DOT开头的文件的访问,那么您就不会有披露该文件的风险。

在代码中设置配置

另一个选项是在源代码而不是.user.ini文件中设置INI设置。

http://php.net/manual/en/ini.list.php提供了可以通过ini_set()设置的所有INI设置的列表。特别是标记** php_ini_user **的选项。

我为我的数据库用户名,密码和数据库名称执行此操作。我包括这样的INI文件:

$parsed_ini_variables_array = parse_ini_file('/home/username/ini_folder/file_name.ini');

然后,在INI文件的内部:

;Comment
[section name]
key=value
key2=value2

我希望这会有所帮助。

相关内容

最新更新