我有一个我创建的PHP Web应用程序,在src,vendor和web等文件夹中组织,其中' web'被设置为我的服务器上的文档根目录。这样做的原因是为了防止访问不在' web'。
中的任何其他文件。我正在使用.user.ini文件来简单地修改一些全局设置,但是当我将它放在文档根目录(web的父级)的一级时,配置设置在根本没有触发的位置。当我把它放在网络中时一切正常。
这是什么原因? 有没有什么方法可以让.user.ini像我建议的那样工作?
安全方面我更愿意这样做,而不是拒绝使用.htaccess在网络内访问。
我使用Fast CGI作为我的PHP处理程序,不想改变它。
答案 0 :(得分:2)
根据http://php.net/manual/en/configuration.file.per-user.php,
除了主要的php.ini文件外,PHP还会扫描每个文件中的INI文件 目录,从所请求的PHP文件的目录开始,和 一直到当前文档根目录(如设置中所示) $ _SERVER [' DOCUMENT_ROOT'])。如果PHP文件在 文档根目录,只扫描其目录。
但是,您的网络服务器根本不应该提供/^./文件。如果您的网络服务器阻止访问以点开头的文件,那么您不会有披露该文件的风险。
另一种选择是在源代码中而不是在.user.ini文件中设置ini设置。
http://php.net/manual/en/ini.list.php列出了您可以通过ini_set()
设置的所有ini设置。特别是标有** PHP_INI_USER **。
答案 1 :(得分:0)
我为我的数据库用户名,密码和数据库名称执行此操作。我包括这样的ini文件:
$parsed_ini_variables_array = parse_ini_file('/home/username/ini_folder/file_name.ini');
然后,在ini文件中:
;Comment
[section name]
key=value
key2=value2
我希望这会有所帮助。