Httpd 选项
表格 4-2. Httpd 选项
名称默认值类别async_send
"0"
PHP_INI_ALL
语言选项
表格 4-3. 语言和杂类配置选项
名称默认值类别short_open_tag
On
PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags
Off
PHP_INI_SYSTEM|PHP_INI_PERDIR
precision
"14"
PHP_INI_ALL
y2k_compliance
Off
PHP_INI_ALL
allow_call_time_pass_reference
On
PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php
On
PHP_INI_SYSTEM
以下是该配置选项的简要解释。
short_open_tag boolean 决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?>)。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?>。否则还可以通过 PHP 来输出,例如:<?php echo '<?xml version="1.0"'; ?>。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?>)。
注: 本指令也会影响到缩写形式 <?=,它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。
asp_tags boolean 除了通常的 <?php ?> 标志之外还允许使用 ASP 风格的标志 <% %>。这也包括了输出变量值的缩写 <%= $value %>。更多信息见从 HTML 中分离一节。
注: ASP 风格标志的支持是 3.0.4 版新加的。
precision integer 浮点数中显示有效数字的位数。
y2k_compliance boolean 强制 2000 年兼容(在不兼容的浏览器中会出问题)。
allow_call_time_pass_reference boolean 是否启用在函数调用时强制参数被按照引用传递。此方法已不被赞成并在 PHP/Zend 未来的版本中很可能不再支持。鼓励使用的方法是在函数定义中指定哪些参数应该用引用传递。鼓励大家尝试关闭此选项并确保脚本能够正常运行,以确保该脚本也能在未来的版本中运行(每次使用此特性都会收到一条警告,参数会被按值传递而不是按照引用传递)。
参见引用的解释。
expose_php boolean 决定是否暴露 PHP 被安装在服务器上(例如在 Web 服务器的信息头中加上其签名)。没有任何安全上的威胁,只是让客户端能够知道是否在服务器中安装了 PHP。
资源限制
表格 4-4. 资源限制
名称默认值类型memory_limit
"8M"
PHP_INI_ALL
以下是该配置选项的简要解释。
memory_limit integer 本指令设定了一个脚本所能够申请到的最大内存字节数。这有助于防止写得不好的脚本消耗光服务器上的可用内存。要使用此指令必须在编译的时候激活。因此 configure 一行中应该包括:--enable-memory-limit。如果不需要任何内存上的限制,必须将其设为 -1。
自 4.3.2 起,当激活了 memory_limit,PHP 函数 memory_get_usage() 成为可用。
数据处理
表格 4-5. 数据处理配置选项
名称默认值类型track-vars
"On"
PHP_INI_??
arg_separator.output
"&"
PHP_INI_ALL
arg_separator.input
"&"
PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order
"EGPCS"
PHP_INI_ALL
register_globals
"Off"
PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv
"On"
PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays
"On"
PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size
"8M"
PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order
"GPC"
PHP_INI_ALL
auto_prepend_file
""
PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file
""
PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype
"text/html"
PHP_INI_ALL
default_charset
"iso-8859-1"
PHP_INI_ALL
always_populate_raw_post_data
"0"
PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods
"0"
PHP_INI_SYSTEM|PHP_INI_PERDIR
以下是该配置选项的简要解释。
track_vars boolean 如果激活,则环境变量,GET,POST,Cookie 和 Server 变量都能够分别在全局关联数组中找到:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER。
注意自 PHP 4.0.3 起,track_vars 总是打开的。
arg_separator.output string PHP 所产生的 URL 中来分隔参数的分隔符。
arg_separator.input string PHP 用来将 URL 解析为变量的分隔符列表。
注: 本指令中的每个字符都会被当成分隔符!
variables_order string 设定 EGPCS(Environment,GET,POST,Cookie,Server)变量解析的顺序。默认设定为“EGPCS”。举例说,将其设为“GP”,会导致 PHP 完全忽略环境变量,cookies 和 server 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。
参见 register_globals。
register_globals boolean 决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。例如,如果 register_globals = on,那么 URL http://www.example.com/test.php?id=3 将产生 $id。或者从 $_SERVER['DOCUMENT_ROOT'] 得来 $DOCUMENT_ROOT。如果不想用户数据把全局域弄乱的话可以将此选项关闭。自 PHP 4.2.0 开始,本指令默认为 off。推荐使用 PHP 的预定义变量来替代,例如超全局变量:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER。相关信息请阅读安全一章中的使用 register_globals。
请注意 register_globals 不能在运行时设定(ini_set()),尽管如以上说明在主机允许时可以用 .htaccess。一个 .htaccess 项目的例子:php_flag register_globals on。
注: register_globals 受 variables_order 指令的影响。
register_argc_argv boolean 决定 PHP 是否定义 argv & argc 变量(可能包含有 GET 信息)。
参见命令行方式。此外,本选项自 PHP 4.0.0 起可用,在此之前总是“On”。
register_long_arrays boolean 设定 PHP 是否注册已过时的 $HTTP_*_VARS 之类的预定义变量。如果为 On(默认值),则类似 $HTTP_GET_VARS 的 PHP 变量会被注册。如果不使用,为性能考虑建议关闭此选项,而使用超全局数组例如 $_GET 替代之。
本指令自 PHP 5.0.0 起可用。
post_max_size integer 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
如果配置脚本中激活了内存限制,memory_limit 也会影响文件上传。通常说,memory_limit 应该比 post_max_size 要大。
gpc_order string 设定 GET/POST/COOKIE 变量解析的顺序,默认为“GPC”。举例说,将其设为“GP”,会导致 PHP 完全忽略 cookie 变量,并用 GET 方法的变量覆盖 POST 方法的同名变量。
注: 本选项不能用于 PHP 4。用 variables_order 替代之。
auto_prepend_file string 指定在主文件之前自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来,因此会使用 include_path。
特殊值 none 禁止了自动前缀。
auto_append_file string 指定在主文件之后自动解析的文件名。该文件就像调用了 include() 函数一样被包含进来,因此会使用 include_path。
特殊值 none 禁止了自动后缀。
注: 如果脚本通过 exit() 终止,则自动后缀不会发生。
default_mimetype string
default_charset string 自 4.0b4 起,PHP 总是默认在 HTTP 信息头 Content-type: 中输出字符编码。要禁止发送字符集,将本选项设为空即可。
always_populate_raw_post_data boolean 总是增加 $HTTP_RAW_POST_DATA 变量。
allow_webdav_methods boolean 允许在 PHP 脚本中处理 WebDAV 的 HTTP 请求(例如 PROPFIND,PROPPATCH,MOVE,COPY 等)。如果要取得这些请求的 POST 数据,也要设定 always_populate_raw_post_data。
参见 magic_quotes_gpc,magic-quotes-runtime 和 magic_quotes_sybase。
路径和目录
表格 4-6. 路径和目录配置选项
名称默认值类型include_path
PHP_INCLUDE_PATH
PHP_INI_ALL
doc_root
PHP_INCLUDE_PATH
PHP_INI_SYSTEM
user_dir
NULL
PHP_INI_SYSTEM
extension_dir
PHP_EXTENSION_DIR
PHP_INI_SYSTEM
cgi.fix_pathinfo
"0"
PHP_INI_SYSTEM
cgi.force_redirect
"1"
PHP_INI_SYSTEM
cgi.redirect_status_env
""
PHP_INI_SYSTEM
fastcgi.impersonate
"0"
PHP_INI_SYSTEM
cgi.rfc2616_headers
"0"
PHP_INI_SYSTEM
以下是该配置选项的简要解释。
include_path string 指定一组目录用于 require(),include() 和 fopen_with_path() 函数来寻找文件。格式和系统的 PATH 环境变量类似:一组目录的列表,在 UNIX 下用冒号分隔,在 Windows 下用分号分隔。
例子 4-3. UNIX include_path
include_path=".:/php/includes"
例子 4-4. Windows include_path
include_path=".;c:\php\includes"
在包含路径中使用 . 可以允许相对路径,它代表当前目录。
doc_root string PHP 在服务器上的根目录。仅在非空时使用。如果 PHP 被配置为安全模式,则此目录之外的文件一概不被解析。如果 PHP 编译时没有指定 FORCE_REDIRECT,并且在任何 web 服务器(除了 IIS)中以 CGI 方式运行 PHP,则应该设定 doc_root。替代方案是使用下面的 cgi.force_redirect 配置选项。
user_dir string 在用户目录之下使用 PHP 文件的基本目录名,例如 public_html。
extension_dir string PHP 用来寻找动态连接扩展库的目录。参见 enable_dl 和 dl()。
extension string 当 PHP 启动时所加载的动态连接扩展库。
cgi.fix_pathinfo boolean 对 CGI 提供了真正的 PATH_INFO/PATH_TRANSLATED 支持。以前 PHP 的行为是将 PATH_TRANSLATED 设为 SCRIPT_FILENAME,而不管 PATH_INFO 是什么。有关 PATH_INFO 的更多信息见 cgi 规格。将此值设为 1 将使 PHP CGI 修正其路径以遵守规格。设为 0 将使 PHP 的行为和从前一样。默认为零。用户应该修正其脚本使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。
cgi.force_redirect boolean 在大多数 web 服务器中以 CGI 方式运行 PHP 时很有必要用 cgi.force_redirect 提供安全。PHP 默认其为 On。可以将其关闭,但风险自担。
注: Windows 用户:可以安全地在 IIS 之下将其关闭,事实上必须这么做。要在 OmniHTTPD 或 Xitami 之下使用也必须将其关闭。
cgi.redirect_status_env string 如果打开了 cgi.force_redirect,并且不是在 Apache 或 Netscape(iPlanet)web 服务器之下运行,可能需要设定一个环境变量名,PHP 将去寻找它来知道可以继续执行下去。
注: 设定此变量可能会导致安全问题,首先要知道自己在做什么。
fastcgi.impersonate string IIS(在基于 WINNT 的操作系统上)中的 FastCGI 支持模仿客户端安全令牌的能力。这使得 IIS 能够定义运行时所基于的请求的安全上下文。Apache 中的 mod_fastcgi 不支持此特性(03/17/2002)。如果在 IIS 中运行则设为 1。默认为 0。
cgi.rfc2616_headers int 指定 PHP 在发送 HTTP 响应代码时使用何种报头。如果设定为 0,PHP 发送一个 Status: 报头,Apache 和其它 web server 都支持。如果此选项设定为 1,PHP 将发送 RFC 2616 兼容的报头。除非你知道自己在做什么,否则保留其值为 0。
文件上传
表格 4-7. 文件上传配置选项
名称默认值类型file_uploads
"1"
PHP_INI_SYSTEM
upload_tmp_dir
NULL
PHP_INI_SYSTEM
upload_max_filesize
"2M"
PHP_INI_SYSTEM|PHP_INI_PERDIR
以下是该配置选项的简要解释。
file_uploads boolean 是否允许 HTTP 文件上传。参见 upload_max_filesize,upload_tmp_dir 和 post_max_size 指令。
upload_tmp_dir string 文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值。
upload_max_filesize integer 所上传的文件的最大大小。
普通 SQL
表格 4-8. 普通 SQL 配置选项
名称默认值类型sql.safe_mode
"0"
PHP_INI_SYSTEM
以下是该配置选项的简要解释。
sql.safe_mode boolean
调试器配置选项
debugger.host string 调试器所使用的主机的 DNS 名或 IP 地址。
debugger.port string 调试器所用的端口号。
debugger.enabled boolean 是否启用调试器。