不同环境的配置会影响代码执行结果。比如有的漏洞看着快成功了但是无法利用就是因为配置问题

1.配置指令作用域

配置可被设定范围

这些模式决定着一个 PHP 的指令在何时何地,是否能够被设定。手册中的每个指令都有其所属的模式。例如有些指令可以在 PHP 脚本中用 ini_set() 来设定,而有些则只能在 php.ini 或 httpd.conf 中。
例如 output_buffering 指令是属于 PHP_INI_PERDIR,因而就不能用 ini_set() 来设定。但是 display_errors 指令是属于 PHP_INI_ALL 因而就可以在任何地方被设定,包括 ini_set()

模式 含义
PHP_INI_USER 可在用户脚本(例如 ini_set()
)或 Windows 注册表
以及 .user.ini 中设定
PHP_INI_PERDIR 可在 php.ini,.htaccess 或 httpd.conf 中设定
PHP_INI_SYSTEM 可在 php.ini 或 httpd.conf 中设定
PHP_INI_ALL 可在任何地方设定

PHP总共有4个配置指令作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)

  • PHP_INI_PERDIR:指令可以在php.ini、httpd.conf或.htaccess文件中修改

  • PHP_INI_SYSTEM:指令可以在php.ini 和 httpd.conf 文件中修改

  • PHP_INI_USER:指令可以在用户脚本中修改

  • PHP_INI_ALL:指令可以在任何地方修改

总结:就是每个指令有设置模式 设置模式规定了 该指令设定地方

2.示例

register_globals

该设置在On 情况下 会直接把用户get post方式提交的参数注册成全局变量。register_globals 在PHP(<=4.2.3)设置为PHP_INI_ALL

allow_url_include

magic_quotes_gpc

个人感觉没有什么用。除非上传文件修改某个配置。都能上传文件了还要修该什么配置啊。。。仅做了解,实际里好像也有通过上传配置文件修改配置的情况。虽然我没有遇到过

参考:
原文链接:https://blog.csdn.net/bravezhe/article/details/18351975
https://www.php.net/manual/zh/configuration.changes.php 修改配置设定
https://blog.csdn.net/redwand/article/details/104105269/ 上传.htaccess配置文件