2 E_WARNING 运行时警告(非致命性错误)
4 E_PARSE 编译时解析错误
8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)
16 E_CORE_ERROR PHP启动时初始化过程中的致命错误
32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)
64 E_COMPILE_ERROR 编译时致命性错
128 E_COMPILE_WARNING 编译时警告(非致命性错)
256 E_USER_ERROR 用户自定义的致命错误
512 E_USER_WARNING 用户自定义的警告(非致命性错误)
1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)
2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)
4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同E_ERROR
6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有)
track_errors = Off
是否在变量$php_errormsg中保存最近一个错误或警告消息。
display_errors = On
是否将错误信息作为输出的一部分显示。
在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
在最终发布的web站点打开这个特性可能暴露一些安全信息,
例如你的web服务上的文件路径、数据库规划或别的信息。
display_startup_errors = Off
是否显示PHP启动时的错误。
即使display_errors指令被打开,关闭此参数也将不显示PHP启动时的错误。
建议你关掉这个特性,除非你必须要用于调试中。
report_memleaks = On
是否报告内存泄漏。这个参数只在以调试方式编译的PHP中起作用,
并且必须在error_reporting指令中包含 E_WARNING
report_zend_debug = On
尚无说明文档
html_errors = On
是否在出错信息中使用HTML标记。
注意: 不要在发布的站点上使用这个特性!
docref_root = ;"http://localhost/phpmanual/"
docref_ext = ;".html"
如果打开了html_errors指令,PHP将会在出错信息上显示超连接,
直接链接到一个说明这个错误或者导致这个错误的函数的页面。
你可以从http://www.php.net/docs.php下载php手册,
并将docref_root指令指向你本地的手册所在的URL目录。
你还必须设置docref_ext指令来指定文件的扩展名(必须含有''.'')。
注意: 不要在发布的站点上使用这个特性。
error_prepend_string = ;"<fontcolor=#f00>"
用于错误信息前输出的字符串
error_append_string = ;"</font>"
用于错误信息后输出的字符串
xmlrpc_errors = Off
xmlrpc_error_number = 0
尚无文档
[PHP-Core-Logging]
define_syslog_variables = Off
是否定义各种系统日志变量,如:$LOG_PID, $LOG_CRON 等等。
关掉它以提高效率的好主意。
你可以在运行时调用define_syslog_variables()函数来定义这些变量。
error_log =
将错误日志记录到哪个文件中。该文件必须对Web服务器用户可写。
syslog 表示记录到系统日志中(NT下的事件日志, Unix下的syslog(3))
如果此处未设置任何值,则错误将被记录到Web服务器的错误日志中。
log_errors = Off
是否在日志文件里记录错误,具体在哪里记录取决于error_log指令。
强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出,
这样可以让你既知道那里出了问题,又不会暴露敏感信息。
log_errors_max_len = 1024
设置错误日志中附加的与错误信息相关联的错误源的最大长度。
这里设置的值对显示的和记录的错误以及$php_errormsg都有效。
设为 0 可以允许无限长度。
ignore_repeated_errors = Off
记录错误日志时是否忽略重复的错误信息。
错误信息必须出现在同一文件的同一行才被被视为重复。
ignore_repeated_source = Off
是否在忽略重复的错误信息时忽略重复的错误源。
[PHP-Core-Mail]
要使邮件函数可用,PHP必须在编译时能够访问sendmail程序。
如果使用其它的邮件程序,如qmail或postfix,确保使用了相应的sendmail包装。
PHP首先会在系统的PATH环境变量中搜索sendmail,接着按以下顺序搜索:
/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
强烈建议在PATH中能够找到sendmail。
另外,编译PHP的用户必须能够访问sendmail程序。
SMTP = "localhost"
mail()函数中用来发送邮件的SMTP服务器的主机名称或者IP地址。仅用于win32。
smtp_port = 25
SMTP服务器的端口号。仅用于win32。
sendmail_from =
发送邮件时使用的"From:"头中的邮件地址。仅用于win32
该选项还同时设置了"Return-Path:"头。
sendmail_path = "-t -i"
SYS
仅用于unix,也可支持参数(默认的是''sendmail -t -i'')
sendmail程序的路径,通常为"/usr/sbin/sendmail或/usr/lib/sendmail"。
configure脚本会尝试找到该程序并设定为默认值,但是如果失败的话,可以在这里设定。
不使用sendmail的系统应将此指令设定为sendmail替代程序(如果有的话)。
例如,Qmail用户通常可以设为"/var/qmail/bin/sendmail"或"/var/qmail/bin/qmail-inject"。
qmail-inject 不需要任何选项就能正确处理邮件。
mail.force_extra_parameters =
作为额外的参数传递给sendmail库的强制指定的参数附加值。
这些参数总是会替换掉mail()的第5个参数,即使在安全模式下也是如此。
[PHP-Core-ResourceLimit]
default_socket_timeout = 60
默认socket超时(秒)
max_execution_time = 30
每个脚本最大允许执行时间(秒),0 表示没有限制。
这个参数有助于阻止劣质脚本无休止的占用服务器资源。
该指令仅影响脚本本身的运行时间,任何其它花费在脚本运行之外的时间,
如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
在安全模式下,你不能用ini_set()在运行时改变这个设置。
2、
xampp 错误:Deprecated: Assigning the return value of new by referenceis deprecated
发布时间:2011-10-06 08:09 来源:unmi.cc
WordPress 3.0.1 之前是在 xampp 1.7.1 中运行的,没什么问题,php 版本为 5.2.9。后来升级xampp 到 1.7.3 版,打开网站最上方出现提示:
Deprecated: Assigning the return value of new by reference isdeprecated inC:xampphtdocsfootnotedwp-contentpluginssimple-tagsincclient.phpon line 1700
这是插件 simple-tags 里的代码,定位到该行是:
$error = & new WP_Error('invalid_taxonomy',__('Invalid Taxonomy'));
而 WP_Error 是用 function 进行定义的:
function WP_Error($code = '', $message = '', $data = '')
应该是说对于函数已不推荐使用 new 的方式了,不该再向 js 学习的。php 中就该用 class 来定义类的,检查到 xampp中 php 版本是 5.3.1。
解决办法呢,你当然可以把其中的 php 换成 5.2 的版本的,那能不能改 php.ini 配置来屏蔽那个提示呢?Of course,在 php 5.3 中除了原来的 E_NOTICE、E_ERROR 等,还引入了 E_DEPRECATED 和E_USER_DEPRECATED 两种错误报告类型。
其实 php.ini 本身的内容是最好的资料,对所有的错误报告类型都有说明的。一种极端的做法是把原来的
display_errors = On 改为
display_errors = Off
然后 Apache 重启一下,这样,所以的错误都不显示了,自然前面的那个 deprecated 提示也没有了。
那就是只要在 php.ini 中修改
error_reporting = E_ALL & ~E_NOTICE 为
error_reporting = E_ALL & ~E_NOTICE& ~E_DEPRECATED
在 php.ini 里注释是建议生产环境中设置 error_reporting 为
error_reporting = E_ALL & ~E_DEPRECATED
最后,如果你仍然收到 Deprecated 的警示,那一定是你的程序中用 error_reporting() 函数覆盖了php.ini 中的设置,比如代码中用了
error_reporting(E_ALL & ~E_NOTICE &~E_WARNING);
那就得把该函数参数里加上 ~E_DEPRECATED,即要写成
error_reporting(E_ALL & ~E_NOTICE &~E_WARNING & ~E_DEPRECATED);
用了 error_reporting() 函数进行了全局设置的话,可以不依赖于 php.ini 中的配置。