PHP_INI_*常量含义
常量 | 含义 |
---|
PHP_INI_USER | 该配置选项可在用户的PHP脚本或Windows注册表中设置 |
PHP_INI_PERDIR | 该配置选项可在php.ini,.htaccess或httpd.conf中设置 |
PHP_INI_SYSTEM | 该配置选项可在php.ini或httpd.conf中设置 |
PHP_INI_ALL | 该配置选项可在任何地方设置 |
php.ini only | 该配置选项仅可在php.ini中配置 |
关键选项
register_global
<?php
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
allow_url_include
version | 变化 |
---|
5.2.0 <= | 此值配置范围为PHP_INI_ALL,默认设置为off |
magic_quotes_gpc
magic_quotes_runtime
函 | 数 | 列 | 表 |
---|
get_meta_tags() | fread() | dba_replace() | dba_fetch() |
file_get_contents() | fputcsv() | ibase_fetch_row() | ibase_fetch_assoc() |
file() | stream_socket_recvfrom() | ibase_fetch_object() | mssql_fetch_row() |
fwrite() | exec() | mssql_fetch_object() | mssql_fetch_array() |
system() | passthru() | mssql_fetch_assoc() | mysqli_fetch_row() |
stram_get_contents() | bzread() | mysqli_fetch_assoc() | mysqli_fetch_object() |
gzfile() | gzgets() | pg_fetch_row() | pg_fetch_assoc() |
exif_read_data() | dba_insert() | pg_fetch_array() | pg_fetch_object() |
pg_fetch_all() | pg_select() | sybase_fetch_object() | sybase_fetch_array() |
sybase_fetch_assoc() | SplFileObject::fgets() | SplFileObject::fgetcsv() | SplFileObject::fwrite() |
magic_quotes_sybase
- 功能:当设置为on时会覆盖gpc配置的功能,它们的共同点是处理对象相同,不同点是它们的处理方式不同,此配置仅会转义空子符和把单引号变双引号。
- 历史:
version | 变化 |
---|
5.4 <= | 此值配置范围为PHP_INI_ALL,被取消 |
safe_mode
- 功能:此配置设置为on时,联动的可以配置safe_mode_include_dir、safe_mode_exec_dir、safe_mode_allowed_env_vars、safe_mode_protected_env_vars。
- 所有文件操作函数(unlink()、file()、include())等会受到限制,这些函数不能操作根目录用户之外其他用户的文件。如果需要的话则需要使用safe_mode_include_dir配置来包含路径。
- 通过函数popen()、system()、exec()等执行命令或程序会提示错误。可以把需要使用的一些外部脚本放在一个目录下,然后使用safe_mode_exec_dir指令来指向此目录。
version | 变化 |
---|
5.4 <= | 此值配置范围为PHP_INI_SYSTEM,被取消 |
函 | 数 | 列 | 表 |
---|
apache_request_headers() | ackticks() | hdir() | hgrp() |
chmode() | chown() | copy() | dbase_open() |
dbmopen() | dl() | exec() | filepro() |
filepro_retrieve() | ilepro_rowcount() | fopen() | header() |
highlight_file() | ifx_* | ingres_* | link() |
mail() | max_execution_time() | mkdir() | move_uploaded_file() |
mysql_* | parse_ini_file() | passthru() | pg_lo_import() |
popen() | posix_mkfifo() | putenv() | rename() |
zmdir() | set_time_limit() | shell_exec() | show_source() |
symlink() | system() | touch() | |
open_basedir
- 功能: 限制PHP访问目录。在指定目录时多个目录通过‘;’分开,且这些值是路径前缀而不是完整的路径,比如“/www/a”不仅可以允许访问“/www/a”目录还允许访问“/www/ab”目录。由于通过对访问路径进行检查来实现此功能为此会托慢执行效率。
- 历史:
version | 变化 |
---|
< 5.2.3 | 此值配置范围为PHP_INI_SYSTEM |
>= 5.2.3 | 此值配置范围为PHP_INI_ALL |
disable_functions
- 功能:禁用指定函数。在使用此配置时一定要将dl()函数添加到禁用函数列表,否则攻击者可以使用此函数来加载自定义的PHP扩展从而绕过此配置的限制。此配置的配置范围是 php.in only ,各函数使用‘,’分割。
display_errors 和 error_reporting
- 功能:表明是否显示PHP脚本内部错误。当设置为on时还可以联动的设置error_reporting指令来配置错误显示级别。这两条指令的配置范围均是PHP_INI_ALL。
数字格式 | 常量格式 | 数字格式 | 常量格式 |
---|
1 | E_ERROR | 128 | E_COMPILE_WARNING |
2 | E_WARNING | 256 | E_USER_ERROR |
4 | E_PARSE | 512 | E_USER_WARNING |
8 | E_NOTICE | 1024 | E_USER_NOTICE |
16 | E_CORE_ERROR | 2047 | E_ALL |
32 | E_CORE_WARNING | 2048 | E_STRICT |
64 | E_COMPILE_ERROR | | |
常用指令说明
指令 | 可配置范围 | 说明 |
---|
safe_mode_gid | PHP_INI_SYSTEM | 以安全模式打开文件时默认使用UID来比对;设置本指令为on时使用GID做宽松的比对 |
expose_php | php.ini only | 是否在服务器返回信息HTTP头部显示PHP版本 |
max_execution_time | PHP_INI_ALL | 每个脚本最多执行的秒数 |
memory_limit | PHP_INI_ALL | 每个脚本能够使用的最大内存数量 |
log_errors | PHP_INI_ALL | 将错误输入到日志文件 |
log_errors_max_len | PHP_INI_ALL | 设定log_errors的最大长度 |
variables_order | PHP_INI_PERDIR | 此指令描述了PHP注册GET、POST、Cookie、环境和内置变量的顺序,注册使用从左往右的顺序,新的值会覆盖旧的值 |
post_max_size | PHP_INI_PERDIR | PHP可以接受的最大的POST数据大小 |
auto_prepend_file | PHP_INI_PERDIR | 在任何PHP文档之前自动包含的文件 |
auto_append_file | PHP_INI_PERDIR | 在任何PHP文档之后自动包含的文件 |
extension_dir | PHP_INI_SYSTEM | 可加载的扩展(模块)所在的位置 |
file_uploads | PHP_INI_SYSTEM | 是否允许HTTP文件上传 |
upload_tmp_dir | PHP_INI_SYSTEM | 对于HTTP上传文件的临时文件目录 |
upload_max_filesize | PHP_INI_SYSTEM | 允许上传的最大文件大小 |