存档

‘软件使用’ 分类的存档

MSSQL数据库的使用

2011年11月17日 没有评论
MSSQL使用帮助

1、如果您的SQL空间开通以后,请打开您本地的SQL server 企业管理器,如下图:

2、点SQL server 组右键,选择新建SQL server 注册,如下图:

3、弹出SQL server 注册向导,点下一步,如下图:

4、可用的服务器填写,您订单中的服务器IP地址,然后点添加,如下图:

5、您添加的服务器IP即可增加到右侧,然后点下一步,如下图:

6、按下图选择连接使用方式,点下一步;

7、按下图所示,按您的订单中显示的SQL用户名和密码,分别填写后,点下一步;

8、完成SQL server 注册,点击完成,如下图:

9、显示注册成功。(如果总是提示失败,请检查您的局域网是否开放了1433端口, 同时检查您的SQL链接超时时间,SQL默认超时时间为4秒,建议改成60秒—在SQL server 企业管理器=>工具=>选项=>高级。)

10、完成SQL server 注册后,在左侧列表中即可看到我们的远程服务器,如下图:

11、点击我们的远程服务器,展开,再展开数据库, 显示出服务器上的数据库列表,请找到您的订单中显示的数据库名称,点击展开,如下图:

12、在表上点击右键,选择所有任务,选择导入数据,如下图所示:

13、弹出数据导入向导,如下图:

14、选择您原来存放数据库的服务器及登陆方法,如下图所示:

15、选择目的,即为本公司的远程服务器,一般下图的内容不用修改;

16、点下一步后,按下图选择,再点下一步;

17、选择您想要导入的表、视图等数据内容,如下图所示:

18、可以点击全选,也可以手动选择;

19、选好后,点击下一步,弹出下面的图示,按提示,点下一步,完成。

20、至此,您已经设置好了数据库,然后修改您程序中的数据库链接,按您订单里面显示的服务器IP地址、数据库名、登陆用户名、登陆密码进行修改,即可进行数据库链接。

分类: 软件使用 标签:

使用CuteFTP软件上传文件

2011年11月15日 没有评论

CuteFTP 使用方法:[假设您的域名为:abc.com,您的FTP用户名则为:abc]

1.请先下载 http://www.newhua.com/soft/7249.htm  并安装 CuteFTP。

2. 运行 CuteFTP,点击 文件->站点管理器,弹出“站点设置新建站点”窗口;点击新建,填入FTP主机地址(您的空间IP地址),FTP站点用户名称,FTP站点密码,登陆类型选择普通,确认FTP主机地址,用户名,密码无误后点击连接。

3.连接成功以后显示如下图:左边栏为本地栏,右边栏为服务器栏,选择左边栏您需要上传的文件,点右键,选择上传即可。

分类: 软件使用 标签:

php.ini中文版注释

2011年11月12日 没有评论

php.ini 是php语言环境中最为重要的配置文件。以下我们就来详细介绍一下参数及功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
;**************以下这部分是php.ini-recommended中的内容******************
;**********************************************************************************************
;[php 5.0.4 php.ini-recommended]
;;;;;;;;;;;;;;;;;
;;关于这个文件 ;;
;;;;;;;;;;;;;;;;;
; 这个版本是推荐使用的、PHP5风格的php.ini版本。
; 这个版本使用了一些非标准设置,目的是使PHP更加高效、安全,鼓励更加整洁的代码
; 代价是可能与某些程序不兼容,并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。
; 所有与默认不同的设置都有明显的注明,你可以决定是否使用与默认不同的设置。
; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。
; 这个文件和php.ini-dist不同,有些参数的设置改变了,这样做是为了提高性能和保障安全。
; 请确认你阅读了不同之处,并且修改过你的脚本,再采用这个版本的配置文件。
;-----------------------------------------------------------------
;register_globals = Off [安全,性能]
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)
; 不要使用$foo,而要使用$_REQUEST["foo"](包含任何通过请求传送的数据,即:POST, GET, cookies, 环境变量, 服务器变量),
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求来自何处。
; 同时,你可以查看import_request_variables()函数(将 GET/POST/Cookie 变量导入到全局作用域中)。
; 注意,register_globals将在下一个版本中被废除(默认关闭),因为它总是带来太多的安全问题。
; 请参考
http://php.net/manual/en/security.registerglobals.php
以获得更多信息。
;
; register_long_arrays = Off [性能]
; 禁用旧式的长式预定义数组($HTTP_*_VARS),取而代之以短式预定义超全局数组。
;
; display_errors = Off [安全]
; 关闭这个特性,脚本执行期间的错误/警告将不会显示输出,这样就不会将敏感信息暴露给远端用户。
; 一些错误/警告信息会暴露可能被攻击者利用的脚本信息、服务器信息、数据库信息。
; 正式发布网站时应当关闭这个特性。
;
;log_errors = On [安全]
; 这个指令是上一个指令的补充。
; 脚本执行期间的错误将被记录到日志文件中(比如系统日志),可以有几种不同的配置方法。
; 配合将"display_errors"关闭,这个设置可以让你明白那里出了问题,而不会暴露任何敏感信息给远端用户。
;
;output_buffering = 4096 [性能]
; 设置一个4K的输出缓冲。请用输出缓存可以减少写入动作,有时还能减少传输数据包的大小,这些都有助于提高性能。
; 这个参数的实际收益取很大程度上取决于你使用的是什么Web服务器,使用的是什么样的脚本。
;
; register_argc_argv = Off [性能]
; 禁止注册有些多余的$argv和$argc全局变量
;
; magic_quotes_gpc = Off [性能]
; 不将输入的数据用反斜杠进行转义,以便发送给数据库时不需要更多的处理。
; 事实上,你应该对每一个发送到数据库的输入数据使用addslashes()函数。
;
;variables_order = "GPCS" [性能]
; 使得$_ENV数组中的环境变量不再杂乱无章。
; 你应当使用getenv()函数存取环境变量。
;
; error_reporting = E_ALL [代码清洁,安全(?)]
; 默认情况下,PHP错误报告等级是E_NOTICE
; E_ALL表示报告所有非致命错误,因为这些错误可能会导致大问题(比如使用了未定义的变量)。
;
; allow_call_time_pass_reference = Off [代码清洁]
; 禁止默认将函数的参数按引用传递。
; PHP4/5风格的处理办法是在函数声明时指定按引用传递。
 
--------------------------------------------------------------------------------
;**************以下这部分是php.ini-dist的内容,但是包含了与php.ini-recommended的不同之处******************
;*********************************************************************************************************
[PHP 5.0.4 php.ini-dist]
;;;;;;;;;;
;; 警告 ;;
;;;;;;;;;;
; 这是PHP新安装时的默认设置。默认设置适合于开发但是不适合正式应用。
; 出于安全方面考虑,请在发布正式应用程序时使用php.ini-recommended
; 并且参考如下页面:
http://php.net/manual/en/security.php
;;;;;;;;;;;;;;;;;;;
;; 关于 php.ini ;;
;;;;;;;;;;;;;;;;;;;
; 这个文件控制了PHP许多方面的性能和行为。 为了让PHP正确读取这个文件,
; 它必须被命名为'php.ini'。PHP将按照如下顺序依次查找该文件:
; 1.当前工作目录;2.环境变量PHPRC指明的路径;3.编译时指定的路径。
; 在windows下,编译时的路径是Windows的安装目录(C:\WINDOWS等)。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数指定。
;
; 该文件的语法非常简单。空白字符(" ","\t",...)和用分号(";")开始的行被简单地忽略。
; 章节标题(例如 : [php])也被简单地忽略,即使将来它们可能有某种意义。
;
; 设置格式如下:
; directive = value
; 指令标识符(directive) 是大小写敏感的! "foo=bar" 不同于 "FOO = bar"。
; 值(value)可以是:
; 1.一个字符串、2.一个数字、3.一个 PHP常量(如:E_ALL, M_PI)、
; 4.一个INI常量(On, Off, True, False, Yes, No, None)、
; 5.一个表达式(如:E_ALL & ~E_NOTICE)、
; 6.用引号括起来的字符串("foo").
;
; INI文件中的表达式仅限于使用位运算符/逻辑非/小括号。
; | 位或
; & 位与
; ~ 位非
; ! 逻辑非
;
; 布尔标志可用 1, On, True, Yes 打开,亦可用 0, Off, False, No 关闭。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字,举例如下:
; foo =将foo置为空字符串
; foo = none将foo置为空字符串
; foo = "none"将foo置为字符串'none'
;
; 如果你在值设置中使用常量,而这些常量属于动态扩展(PHP扩展或Zend扩展)
; 那么你只能在调入这些动态扩展的行之后使用这些常量。
;
; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同。
; 也就是说,如果 php.ini 不存在,或者你删掉了某些行,默认值与之相同。
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;
;;; 语言选项 ;;
;;;;;;;;;;;;;;;
engine = On
; 使PHP脚本语言引擎在Apache下有效。
zend.ze1_compatibility_mode = Off
; 允许使用兼容Zend引擎1(PHP 4.x)的模式
short_open_tag = On
; 允许 "" 短标识,否则只有""和"..."才能被识别。
; 注意:除非你的php程序只供自己使用,否则请不要使用短标记。
; 如果要和XML结合使用PHP,你可以选择禁用此选项以方便直接嵌入使用 ,
; 不然你必须用PHP来输出:
; 本指令也会影响到缩写形式 ",这也会影响到缩写形式:
precision = 12
;[recommended]->precision = 14
; 浮点型数据显示的有效位数
y2k_compliance = On
; 强制打开2000年适应 (可能在非Y2K适应的浏览器中导致问题)
output_buffering = Off
;[recommended]->output_buffering = 4096
; 输出缓存允许你甚至在输出正文内容之后发送http头(包括cookies)。
; 其代价是输出层减慢一点点速度。
; 你可以在运行期间通过调用输出缓冲函数启用输出缓存。
; 你还可以通过设置"output_buffering=On"来为所有文件启用输出缓存(默认4096)。
; 如果你想指定缓冲区的最大字节数,你可以直接将"On"替换成数字,
; 比如:"output_buffering=4096"指定了缓存上限为4096字节。
;output_handler =
; 你可以将所有脚本输出重定向到一个输出处理函数。
; 比如,重定向到"mb_output_handler"函数时,字符编码将被透明地转换为指定的编码。
; 一旦你在这里指定了输出处理程序,"output_buffering"将被自动打开。
; 注意1: 在编写可移植脚本的时候不能依赖这个指令,而应明确的调用ob_start()函数打开输出缓存。
; 使用这个指令可能会导致某些你不熟悉的脚本出错。
; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler"
; 你也不能同时使用"ob_gzhandler"和"zlib.output_compression"
; 注意3: 如果启用了zlib输出压缩,"output_handler"必须为空,取而代之,必须启用"zlib.output_handler"。
zlib.output_compression = Off
; 使用zlib库透明地压缩脚本输出结果。
; 该指令的值可以设置为:Off/On/字节数(用来作为压缩缓冲区大小,默认为4KB)
; 如果在php.ini或者apache配置中打开这个功能,当浏览器发送"Accept-Encoding: gzip(deflate)"头时,
; "Content-Encoding: gzip(deflate)"和"Vary: Accept-Encoding"头将加入到应答头当中。
; 你可以在答头输出之前用ini_set()函数在脚本中禁止这个特性,
; 如果你输出一个"Content-Type: image/"这样的应答头,压缩将不会启用(为了防止Netscape的bug)。
; 你可以在输出"Content-Type: image/"之后使用"ini_set('zlib.output_compression', 'On')"重新打开这个特性。
; 注意1: 压缩率会受压缩缓冲区大小的影响,如果你想得到更好的压缩质量,请指定一个较大的压缩缓冲区。
; 注意2: 如果启用了zlib输出压缩,"output_handler"必须为空,取而代之,必须启用"zlib.output_handler"。
;zlib.output_handler =
; 在打开"zlib.output_compression"指令的情况下,除这里以外,你不能另外指定输出处理程序。
; 这个指令和"output_handler"起相同的作用,但是顺序不同。
implicit_flush = Off
; 这个指令告诉PHP输出层在每个输出块之后自动刷新自身数据。默认为 FALSE
; 这等效于在每个print()、echo()、HTML块之后自动调用flush()函数。
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。
; 在CLI SAPI的执行模式下,该标记默认为 TRUE 。
unserialize_callback_func=
; 如果解序列化程序需要实例化一个未定义类,该这里指定的回调函数将以该未定义类的名字作为参数被调用,
; 以免得到不完整的"__PHP_Incomplete_Class"对象。
; 如果这里没有指定函数,或者指定的函数不包含(或实现)那个未定义的类,将会显示一条警告信息。
; 只有在你真想执行这样一个回调函数的情况下,才需要指定该参数的值。
; 可以通过 php.ini、ini_set() 或 .htaccess 定义"unserialize_callback_func"。
; 若要禁止这个特性,只需置空此设定。
serialize_precision = 100
; 将浮点型和双精度型数据序列化存储时,序列化精度指明了有效位数。
; 默认值能够确保浮点型数据被解序列化程序解码时不会有数据丢失。
allow_call_time_pass_reference = On
;[recommended]->allow_call_time_pass_reference = Off
; 强迫函数调用时按引用传递参数。
; php反对使用这一方法,并可能在将来版本的PHP/Zend里不再支持。
; 鼓励的方法是在函数声明里指定哪些参数按引用传递。
; 我们鼓励你尝试关闭这一选项并确认你的脚本仍能正常工作,以保证你的脚本在将来版本的语言里仍能正常工作。
; (每次使用此特性都会收到一条警告:参数会被按值传递而不是按照引用传递)
;;;;;;;;;;;;;
; 安全模式
safe_mode = Off
; 安全模式
safe_mode_gid = Off
; 安全模式默认情况下在打开文件时会做UID比较检查。
; 如果你想将其放宽到GID比较,可以打开这个参数。
safe_mode_include_dir =
; 在安全模式下,该文件夹和其子文件夹下的文件被包含时,将跳过UID/GID检查。
; (文件夹必须必须在"include_path"中或者用完整路径来包含)
; 从PHP4.2 开始,本指令可以接受和"include_path"指令类似的风格用分号隔开的路径,而不只是一个目录。
; 指定的限制实际上是一个前缀,而非一个目录名,也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:"/dir/incl/"
safe_mode_exec_dir =
; 在安全模式下,只有该文件夹下的可执行程序才能被允许通过system()和其它执行系统程序的函数执行。
; 这些函数是:escapeshellarg, escapeshellcmd, exec, passthru, proc_close, proc_get_status,
; proc_nice, proc_open, proc_terminate, shell_exec, system ....
safe_mode_allowed_env_vars = PHP_
; 该指令包含用逗号分隔的前缀列表,表示用户在安全模式下仅可以更改在此列出的前缀开头的环境变量的值。
; 因为设置某些环境变量,可能会导致潜在的安全漏洞。
; 默认地,用户将仅能设定以PHP_开头的环境变量,(如: PHP_FOO=BAR)。
; 注意: 如果这一参数值为空,PHP将允许用户更改任意环境变量!
safe_mode_protected_env_vars = LD_LIBRARY_PATH
; 这个指令包含一个用逗号分隔的环境变量列表,在安全模式下,列表中的变量是远端用户不能用putenv()更改的。
; 这些变量甚至在"safe_mode_allowed_env_vars"设置为允许的情况下也会得到保护。
;open_basedir =
; 将PHP允许打开的所有文件都限制在此目录下。无论安全模式是否打开,该参数都将起作用。
; 如果web服务器使用了per-directory或虚拟主机,这个参数将非常有意义。
; 当一个脚本试图用例如fopen()或者gzopen()打开一个指定目录树之外的文件时,将遭到拒绝。
; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。
; 在Windows中,用分号分隔目录。在任何其它系统中用冒号分隔目录。
; 作为Apache模块时,父目录中的open_basedir路径将自动被继承。
; 用open_basedir指定的限制实际上是前缀,不是目录名。也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:"/dir/incl/"
; 默认是允许打开所有文件。
disable_functions =
; 这个指令让你可以出于安全原因禁用特定的函数。它接受一个用逗号分隔的函数名列表。
; 无论安全模式是否打开,该参数都将起作用。
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中
disable_classes =
; 这个指令让你可以出于安全原因禁用特定的类。它接受一个用逗号分隔的类名列表。
; 无论安全模式是否打开,该指令都将起作用。本指令自 PHP 4.3.2 起可用。
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中
;highlight.string = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg = #FFFFFF
;highlight.default = #0000BB
;highlight.html = #000000
; 语法高亮模式的色彩。
; 只要能被接受的东西就能正常工作。
;;;;;;;;;
; 杂项
expose_php = On
; 决定PHP是否暴露它被安装在服务器上的事实(比如出现在http头中)
; 它不会有安全上的威胁, 但它使得检查你的服务器上是否安装了PHP成为了可能。
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 资源限制 ;;
;;;;;;;;;;;;;;
max_execution_time = 30
; 每个脚本最大允许执行时间, 按秒计。默认为30秒。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 注: "max_execution_time"仅影响脚本本身的运行时间。
; 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
max_input_time = 60
; 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计
memory_limit = 8M
; 设定一个脚本所能够申请到的最大内存字节数。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要使用此指令必须在编译的时候激活。
; 因此 configure 一行中应该包括:--enable-memory-limit
; 如果不需要任何内存上的限制,必须将其设为 -1
; 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用
;;;;;;;;;;;;;;;;;;;;
;; 出错处理和日志 ;;
;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
;[recommended]->error_reporting = E_ALL
; 显示所有的错误,除了提醒和编码标准化警告。
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
display_errors = On
;[recommended]->display_errors = Off
; 作为输出的一部分显示出错误信息
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
; 在最终发布的web站点打开这个特性可能暴露一些安全信息,
; 例如你的web服务上的文件路径、数据库规划或别的信息。
display_startup_errors = Off
; 即使"display_errors"特性被打开,关闭此参数也将不显示PHP启动时的错误。
; 强烈建议你关掉这个特性,除非你必须要用于调试中。
log_errors = Off
;[recommended]->log_errors = On
; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的))
; 正如上面说明的那样,强烈建议你在最终发布的web站点时用日志记录错误而不是直接输出。
log_errors_max_len = 1024
; 设置错误日志文件的最大长度。
; 设为 0 可以允许无限长度。
ignore_repeated_errors = Off
; 忽略重复的错误信息
; 如果关闭这个参数,错误信息必须出现在同一个文件的同一行才被忽略。
; 如果打开这个参数,则没有这个限制。
ignore_repeated_source = Off
; 忽略重复的错误源
; 忽略重复的错误信息时忽略重复的错误源
; 如果打开这个参数,将不会记录不同的出错文件和对应行的错误信息。
report_memleaks = On
; 报告内存泄漏
; 如果关闭该参数,将不记录或者显示内存泄漏
; 这个参数只在调试编译中起作用,并且必须在错误报告中包含 E_WARNING
track_errors = Off
; 保存最近一个错误/警告消息于变量$php_errormsg (boolean)中
;html_errors = Off
; 禁用出错信息中的HTML标记
; 注意: 不要在发布的程序中使用这个特性。
;docref_root = "/phpmanual/"
;docref_ext = .html
; 如果打开了html_errors参数,PHP将会在出错信息上显示超连接,
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
; 你可以从
http://www.php.net/docs.php
下载php手册,并设置docref_root参数,将他指向你本地的手册所在目录。
; 你还必须设置"docref_ext"来指定文件的扩展名。
; 注意: 不要在发布的程序中使用这个特性。
;error_prepend_string = ""
; 用于错误信息前输出的字符串
;error_append_string = ""
; 用于错误信息后输出的字符串
;error_log = filename
; 将错误日志记录到哪个文件中。
; 如果设为"syslog", 错误日志将被记录到系统日志中(NT下的事件日志, Unix下的syslog(3))
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 数据处理 ;;
;;;;;;;;;;;;;;
;arg_separator.output = "&"
; PHP所产生的URL中来分隔参数的分隔符。默认值是"&"
;arg_separator.input = ";&"
; PHP解析URL中的变量时使用的分隔符列表,默认值是"&"
; 注意: 字符串中的任何字符都将被看着分割符
variables_order = "EGPCS"
;[recommended]->variables_order = "GPCS"
; PHP注册 GET, POST, Cookie, Environment, Built-in 变量的顺序。
; (以 G, P, C, E, S 表示,通常以 EGPCS 或 GPC 或 ES 的方式引用)。
; 按从左到右记录,新值覆盖旧值。
; 举例说,将其设为"GP",会导致 PHP 完全忽略环境变量、cookies 、server,
; 并用 GET 方法的变量覆盖 POST 方法的同名变量
register_globals = Off
; 是否将这些 EGPCS 变量注册为全局变量。自 PHP 4.2.0 开始,本指令默认为 off
; 例如,如果打开这个特性,那么URL:
http://www.example.com/test.php?id=3
将产生 $id
; 或者从 $_SERVER['DOCUMENT_ROOT'] 得到 $DOCUMENT_ROOT 。
; 如果你不想让脚本中的全局变量和用户输入的数据搞混的话,请关闭它。
; 推荐使用PHP的预定义变量来替代,例如超全局变量:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER
; 请注意, register_globals不能在运行时设定(ini_set()),尽管在主机允许时可以用 .htaccess 来设置
; 一个 .htaccess 项目的例子:php_flag register_globals on
; 注: register_globals 受 variables_order 指令的影响。
register_long_arrays = On
;[recommended]->register_long_arrays = Off
; 是否启用旧式的长式数组(HTTP_*_VARS),推荐关闭该特性以获得更好的性能。
register_argc_argv = On
;[recommended]->register_argc_argv = Off
; 是否声明 argv和argc 变量(其中包含用GET方法传来的数据)
; 【argv为变量数组,argc为变量数组中元素个数】
; 若你不想使用这两个变量,应当关掉它以提高性能。
post_max_size = 8M
; PHP接受的POST数据最大长度。此设定也影响到文件上传。
; 要上传大文件,该值必须大于"upload_max_filesize"
; 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。
; 一般说来,"memory_limit"应该比"post_max_size"要大。
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 魔术引号(自动字符串转义)
magic_quotes_gpc = On
;[recommended]->magic_quotes_gpc = Off
; 在输入的GET/POST/Cookie数据里使用自动字符串转义【比如,值 (It's "PHP!") 会自动转换成 (It\'s \"PHP!\")】
; 这里的设置自动影响$_GEST,$_POST,$_COOKIE数组的值。如果打开,值 (It's "PHP!") 会自动转换成 (It\'s \"PHP!\")。
; (个人意见:关闭此特性, 因为它在处理双字节汉字的时候可能会破坏某些繁体字和特殊字符)
magic_quotes_runtime = Off
; 对运行时从外部资源产生的数据使用自动字符串转义
; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
magic_quotes_sybase = Off
; 采用 Sybase形式的自动字符串转义( 用 '' 表示 ' 而不用 \' )
auto_prepend_file =
; 指定在主文件之前自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"
auto_append_file =
; 指定在主文件之后自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"
; 注: 如果脚本通过 exit() 终止,则自动后缀不会发生。
default_mimetype = "text/html"
;default_charset = "iso-8859-1"
; PHP总是默认地在"Content-type:"头中设置输出文档的MIME类型和字符集的编码方式。
; 要让输出字符集失效,只要设置为空或注释掉即可。
; PHP的默认设置会输出"Content-Type: text/html"
; 若去掉"default_charset"前的注释并将其设为"gb2312",
; 那么将会输出"Content-Type: text/html; charset=gb2312"
;always_populate_raw_post_data = On
; 总是填充$HTTP_RAW_POST_DATA变量,"HTTP_RAW_POST_DATA"意为"HTTP原始POST数据"
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;
;; 路径和目录 ;;
;;;;;;;;;;;;;;;;
;include_path = ".;c:\php\includes"
; 指定一组目录用于require(),include()和fopen_with_path()函数来寻找文件。
; 格式和系统的 PATH 环境变量类似:
; 一组目录的列表,在 UNIX 下用冒号分隔,在 Windows 下用分号分隔。
; 在包含路径中使用 '.' 可以允许相对路径,它代表当前目录。
; UNIX: "/path1:/path2"
; Windows: "\path1;\path2"
doc_root =
; PHP页面在服务器上的根目录。仅在非空时有效。
; 如果PHP被配置为安全模式,则此目录之外的文件一概不被解析。
; 如果PHP编译时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行,
; 则必须设置此项。(参见手册中的安全部分)
; 替代方案是使用下面的"cgi.force_redirect"指令。
user_dir =
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。
; 也就是在用户目录之下使用PHP文件的基本目录名,例如:public_html
extension_dir = "./"
; 存放扩展库(模块)的目录,也就是PHP用来寻找动态连接扩展库的目录
enable_dl = On
; 是否使dl()函数有效。
; dl()函数在除apache以外的多线程的服务器(如:IIS或Zeus)上不能正确地工作,并在其上默认为禁止。
;cgi.force_redirect = 1
; 打开cgi强制重定向为以CGI方式运行的php提供了必要的安全保护,php默认打开了该参数。
; 你若自己关闭了它,请自己负责后果
; 注意:在IIS/OmniHTTPD/Xitami上则必须关闭它!
;cgi.nph = 1
; 如果该参数打开,那么它会强制cgi对每个http请求始终发送状态码: 200
;cgi.redirect_status_env =
; 如果打开了cgi.force_redirect,并且你没有将php运行在Apache或Netscape(iPlanet)服务器上,
; 可能需要设定一个cgi重定向环境变量名,PHP将去寻找它来知道可以继续执行下去。
; 设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。
;fastcgi.impersonate = 1
; IIS中的FastCGI支持模仿客户端安全令牌的能力。这使得IIS能够定义运行时所基于的请求的安全上下文。
; Apache中的mod_fastcgi不支持此特性(03/17/2002)
; 如果在IIS中运行则设为1,默认为 0
;cgi.rfc2616_headers = 0
; 指定PHP在发送HTTP响应代码时使用何种报头。
; 如果设定为0,PHP发送一个"Status: "报头,Apache和其它web server都支持。
; 若设为0,则PHP使用Apache支持的头。若设为1,则PHP使用RFC2616标准的头。默认值为0
; 除非你知道自己在做什么,否则保留其值为 0
;;;;;;;;;;;;;;
;; 文件上传 ;;
;;;;;;;;;;;;;;
file_uploads = On
; 是否允许HTTP文件上传。参见upload_max_filesize,upload_tmp_dir,post_max_size
;upload_tmp_dir =
; 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值。
upload_max_filesize = 2M
; 允许上传的文件的最大尺寸。
;;;;;;;;;;;;;;
;; 文件打开 ;;
;;;;;;;;;;;;;;
allow_url_fopen = On
; 是否允许打开远程文件( http:// or ftp://)
;from="
john@doe.com
"
; 定义匿名ftp的密码(一个email地址)
;user_agent="PHP"
; 定义"User-Agent"字符串
default_socket_timeout = 60
; socket超时,单位是秒
;auto_detect_line_endings = Off
; 如果的你脚本必须处理Macintosh文件,或者你运行在Macintosh上,同时又要处理unix或win32文件,
; 设置这个标志可以让PHP自动侦察文件结束符,以便fgets()和file()函数正常工作。
; 默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,
; 而且在 Unix 系统下使用回车符作为项目分隔符的人们会遭遇向下不兼容的行为。
;;;;;;;;;;;;;;
;; 动态扩展 ;;
;;;;;;;;;;;;;;
; 若你希望一个扩展库自动加载,可用下面的语法:
; extension=modulename.extension
; 例如,在windows上:
; extension=msql.dll
; 在UNIX上:
; extension=msql.so
; 注意,这只应当是模块的名字,不需要附带目录信息。
; 上面的extension_dir已经指示了扩展库的位置。
;Windows 扩展
;注意,ODBC是内置支持的,不需要使用扩展。(MySQL没有内置)
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_mysql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll
--------------------------------------------------------------------------------
;;;;;;;;;;;;;;
;; 模块设置 ;;
;;;;;;;;;;;;;;
[Syslog]
define_syslog_variables = Off
; 是否定义各种的系统日志变量,如:$LOG_PID, $LOG_CRON 等等。
; 关掉它以提高效率的好主意。
; 你可以在运行时调用函数define_syslog_variables()来定义这些变量
[mail function]
SMTP = localhost ;仅用于win32系统
smtp_port = 25 ;仅用于win32系统
;sendmail_from =
me@example.com
;仅用于win32系统
;sendmail_path = ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')
;mail.force_extra_parameters =
; Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary.
; These parameters will always replace the value of the 5th parameter to mail(), even in safe mode.
[SQL]
sql.safe_mode = Off
[ODBC]
;odbc.default_db = (暂未实现)
;odbc.default_user = (暂未实现)
;odbc.default_pw = (暂未实现)
odbc.allow_persistent = On ; 是否允许持久连接
odbc.check_persistent = On ; 在重用前检查连接是否还可用
odbc.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
odbc.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
odbc.defaultlrl = 4096
; 处理LONG类型的字段。返回变量的字节数,0代表通过(?)
; Handling of LONG fields. Returns number of bytes to variables. 0 means passthru.
odbc.defaultbinmode = 1
; 处理二进制数据。0代表通过(?) 1返回原样, 2转换为字符
; 参见odbc_binmode和odbc_longreadlen文档以得到uodbc.defaultlrl和uodbc.defaultbinmode的解释。
[MySQL]
; php内置的MySQL扩展库无法同4.1.0以上版本的MySQL一起工作。你需要使用MySQLi扩展。
; MySQLi扩展模块与recode扩展模块共同使用的时候,可能会造成PHP的崩溃和启动时出现问题。
; 如果您需要除latin(默认)以外其它的字符集,您需要安装有已编译字符集支持的外置libmysql(未集成)
mysql.allow_persistent = On ; 允许或禁止持久连接
mysql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
mysql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mysql.default_socket = ; 用于本地MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值
mysql.default_port =
; mysql_connect()使用的默认TCP端口,如果没有指定默认端口号,
; mysql_connect()将按顺序从:(1)$MYSQL_TCP_PORT环境变量、
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。
; Win32下,只使用 MYSQL_PORT 常量。
mysql.default_host = ; mysql_connect() 默认使用的主机(安全模式下无效)
mysql.default_user = ; mysql_connect() 默认使用的用户名(安全模式下无效)
mysql.default_password =
; mysql_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个坏主意
; 任何可以使用PHP访问的用户都可以运行'echo cfg_get_var("mysql.default_password")'来显示密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。
mysql.connect_timeout = 60
; 连接超时(秒),-1 代表无限制。
; 在Linux中,这个参数设定了等候来自服务器的响应的时长。
mysql.trace_mode = Off
; 跟踪模式。当打开这个特性后,扫描表或索引时SQL的警告将会被显示。
[MySQLI]
mysqli.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mysqli.default_socket = ; 用于本机MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值
mysqli.default_port = 3306
; mysqli_connect()使用的默认TCP端口,如果没有指定默认端口号,
; mysqli_connect()将按顺序从:(1)$MYSQL_TCP_PORT环境变量、
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。
; Win32下,只使用 MYSQL_PORT 常量。
mysqli.default_host = ; mysqli_connect() 默认使用的主机(安全模式下无效)
mysqli.default_user = ; mysqli_connect() 默认使用的用户名(安全模式下无效)
mysqli.default_password =
; mysqli_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个坏主意
; 任何可以使用PHP访问的用户都可以运行'echo cfg_get_var("mysql.default_password")'来显示密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。
mysqli.reconnect = Off
; 跟踪模式。当打开这个特性后,扫描表或索引时SQL的警告将会被显示。
[mSQL]
msql.allow_persistent = On ; 允许或禁止持久连接
msql.max_persistent = -1 ; 最大持久连接数。-1 代表无限制
msql.max_links = -1 ; 最大连接数(持久和非持久)。-1 代表无限制
[PostgresSQL]
pgsql.allow_persistent = On ; 允许或禁止持久连接
pgsql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
pgsql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
pgsql.auto_reset_persistent = Off
; 检测用在pg_pconnect()上中断了的持久连接,需要一些额外开销。
pgsql.ignore_notice = 0
; 是否忽略PostgreSQL后端的通告消息。记录后端的通告消息需要一些额外开销。
pgsql.log_notice = 0
; 是否在日志中记录PostgreSQL后端的通告消息。除非pgsql.ignore_notice=0,否则无法记录。
[Sybase]
sybase.allow_persistent = On ; 允许或禁止持久连接
sybase.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
sybase.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; 显示错误的最低严重性
sybase.min_message_severity = 10 ; 显示消息的最低重要性
sybase.compatability_mode = Off
; 与PHP3兼容的模式。若打开,这将导致PHP自动根据结果的Sybase类型赋值,而不是把它们全当成字符串。
; 这个兼容模式不会永远保留,将来会被丢弃。
[Sybase-CT]
sybct.allow_persistent = On ; 允许或禁止持久连接
sybct.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
sybct.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
sybct.min_server_severity = 10 ; 显示服务端错误的最低严重性
sybct.min_client_severity = 10 ; 显示客户端错误的最低严重性
[dbx]
; returned column names can be converted for compatibility reasons
; possible values for dbx.colnames_case are
; "unchanged" (default, if not set)
; "lowercase"
; "uppercase"
; the recommended default is either upper- or lowercase, but
; unchanged is currently set for backwards compatibility
dbx.colnames_case = "unchanged"
[bcmath]
bcmath.scale = 0
; 用于所有bcmath函数的10十进制数数字的个数
[browscap]
;browscap = extra/browscap.ini
;browscap = c:/windows/system32/inetsrv/browscap.ini ;winxp
;browscap = c:/winnt/system32/inetsrv/browscap.ini ;win2000
; 只有PWS和IIS需要这个设置
; 你可以从
http://www.garykeith.com/browsers/downloads.asp
得到一个 browscap.ini 文件。
[Informix]
ifx.default_host = ; ifx_connect() 默认使用的主机(安全模式下无效)
ifx.default_user = ; ifx_connect() 默认使用的用户名(安全模式下无效)
ifx.default_password = ; ifx_connect() 默认使用的密码(安全模式下无效)
ifx.allow_persistent = On ; 允许或禁止持久连接
ifx.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
ifx.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
ifx.textasvarchar = 0
; 若打开,select状态符返回一个"text blob"字段的内容,而不是它的id
ifx.byteasvarchar = 0
; 若打开,select状态符返回一个"byte blob"字段的内容,而不是它的id
ifx.charasvarchar = 0
; 追踪从固定长度的字符列里剥离的空格。可能对 Informix SE 用户有效。
ifx.blobinfile = 0
; 若打开,text和byte blobs的内容被导出到一个文件而不是保存到内存。
ifx.nullformat = 0
; 设为0, NULL被作为空字段返回。设为1, NULL作为字串"NULL"返回。
--------------------------------------------------------------------------------
[Session]
; 注意,除非使用session_register()或$_SESSION注册了一个变量。
; 否则不管是否使用了session_start(),都不会自动添加任何session记录。
session.save_handler = files
; 用于保存/检索数据的处理程序,默认是文件(files)。
;session.save_path = "/tmp"
; 在"session.save_handler=files"的情况下,这个参数指定了会话数据文件的保存路径。
; Windows用户必须修改此参数才能使用会话相关函数。
; 你可以这样定义路径(N是一个整数):session.save_path = "N;[MODE;]/path"
; N表示可以使用N层深度的子目录,而不是将所有数据文件都保存在一个目录下。
; [MODE;]加了括号表示可选,表示它必须用8进制数来表示,其默认值是600 (等于384)。
; The file storage module creates files using mode 600 by default.
; Note that this does not overwrite the process's umask.
; 这是一个提高Windows下海量会话性能的好主意。
; 注意0: "N;/path"两边的双引号不能省略。
; 注意1: php不会自动建立这些文件夹结构。你可以使用ext/session目录下的脚本来做这件事情。
; 注意2: 如果你指定的文件夹可以被不安全的用户读取(比如默认的"/tmp"),那么将会带来安全漏洞。
; 注意3: 参见下面有关垃圾搜集的章节。
session.use_cookies = 1
; 是否使用cookie在客户端保存session id,默认为1(使用)
;session.use_only_cookies = 1
; 只使用Cookie来承载会话,默认为0 (关闭)
; 打开这个选项可以避免用URL传递会话带来的安全问题。但是禁用Cookie的客户端将使session无法工作。
session.name = PHPSESSID
;用在cookie里的会话标识名,只能包含字母和数字。
session.auto_start = 0
; 在客户访问任何页面时自动初始化会话,默认禁止。
; 因为类定义必须在session启动之前被载入,所以若打开这个选项,你就不能在sessions中存放对象。
session.cookie_lifetime = 0
; session_cookie的有效期(秒),若为0,则仅在浏览器打开期间有效。
session.cookie_path = /
; session_cookie的作用路径
session.cookie_domain =
; session_cookie的作用域,默认为空。
session.serialize_handler = php
; 用来序列化/解序列化数据的处理程序,php是PHP的标准序列化/解序列化处理程序。
session.gc_probability = 1
session.gc_divisor = 100
;[recommended]->session.gc_divisor = 1000
; 定义在每次初始化会话时,启动垃圾回收程序的概率。
; 这个收集概率计算公式如下:gc_probability/gc_divisor
; 比如:1/100 表示每一个新会话初始化时,有1%的概率会启动垃圾回收程序。
session.gc_maxlifetime = 1440
; 经过此参数所指的秒数后,保存的数据将被视为'垃圾'并由垃圾回收程序清理。
; 判断的标准是文件建立的时间,而不是最后刷新数据的时间。
; 注意: 如果你使用了子目录来存储会话的数据文件(参见:session.save_path),垃圾回收程序不会自动启动。
; 你必须使用一个你自己编写的shell脚本、克隆目录或者其他办法来执行垃圾搜集。
; 比如,下面的脚本相当于设置了"session.gc_maxlifetime=1440" (24分钟):
; cd /path/to/sessions; find -cmin +24 | xargs rm
session.bug_compat_42 = 1
;[recommended]->session.bug_compat_42 = 0
session.bug_compat_warn = 1
; PHP4.2之前的版本有一个未注明的"特性"(也可看作bug):
; 即使在"register_globals = Off"的情况下也允许初始化全局session变量,
; 如果你在PHP4.3之后的版本中使用这个特性,会显示一条警告。你可以分别禁用这个特性和警告。
; 若打开bug_compat_42,将只显示警告。
session.referer_check =
; 检查HTTP头中的"Referer"以判断包含于URL中的会话id是否有效
; HTTP_REFERER必须包含这个参数指定的字符串,否则URL中的会话id将被视为无效。
; 默认为空,即不检查。
;session.entropy_length = 16
; 从文件中读取多少字节(entropy:平均信息量)[设定session从高熵值资源读取的位数。]
; 默认为0,表示禁用。
; How many bytes to read from the file. Defaults to 0 (disabled).
; specifies the number of bytes which will be read from the file specified above.
;session.entropy_file = /dev/urandom
; 指定创建会话id的文件夹[使用外部高熵值资源或文件来建立session代码,例如 UNIX 系统上的 /dev/random?或 /dev/urandom]
; Specified here to create the session id.
; gives a path to an external resource (file) which will be used as an additional entropy source
; in the session id creation process.
; Examples are /dev/random or /dev/urandom which are available on many Unix systems.
session.cache_limiter = nocache
; 设为{none/nocache/private/private_no_expire/public}以指定会话页面的缓存控制模式,
; 或者设为空以阻止在http应答头中发送禁用缓存的命令。
; 默认为"nocache"
session.cache_expire = 180
; 指定会话页面在客户端cache中的有效期限(分钟)
; "session.cache_limiter=nocache"时,此设置将失效。
session.use_trans_sid = 0
; 默认是禁止用明码在URL中显示sid(session_id)的,因为它会给你的用户带来安全危险,因为:
; 1- 用户可能将包含有效sid的URL 通过email/irc/QQ/MSN...途径告诉给其他人。
; 2- 包含有效sid的URL可能会被保存在公用电脑上。
; 3- 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。
session.hash_function = 0
;[recommended]->session.hash_function = 1
; 生成session_id的hash函数,SHA-1的安全性更高一些
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)
session.hash_bits_per_character = 4
;[recommended]->session.hash_bits_per_character = 5
; 指定在session_id字符串中的每个字符内保存多少位二进制数,
; 这些二进制数是hash函数的运算结果。
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
;[recommended]->url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
; 指定重写哪些HTML标签来包含sid(session_id)(仅在"session.use_trans_sid"打开的情况下有效)
; form和fieldset比较特殊:
; 如果你包含他们,URL重写器将添加一个隐藏的"",它包含了本应当额外追加到URL上的信息。
; 如果你想兼容XHTML标准,请使用"fieldset"代替"form"。
; 注意:所有合法的项都需要一个等号??即使后面没有值。
--------------------------------------------------------------------------------
[MSSQL]
mssql.allow_persistent = On ; 允许或禁止持久连接
mssql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制
mssql.max_links = -1 ; 每个进程中允许的最大连接数(持久和非持久)。-1 代表无限制
mssql.min_error_severity = 10 ; 显示错误的最低严重性
mssql.min_message_severity = 10 ; 显示消息的最低重要性
mssql.compatability_mode = Off ; 与旧版的PHP3.0兼容的模式。
;mssql.connect_timeout = 5 ; 连接超时(秒)
;mssql.timeout = 60 ; 查询超时(秒)
;mssql.textlimit = 4096 ; 取值范围:0 - 2147483647
;mssql.textsize = 4096 ; 取值范围:0 - 2147483647
;mssql.batchsize = 0
; 每批记录最大条数(0 表示所有记录都在一批当中)
;mssql.datetimeconvert = On
; 指定datetime/datetim4字段的返回方式。
; On => 按照SQL server的设置返回
; Off => 按照 YYYY-MM-DD hh:mm:ss 格式返回
mssql.secure_connection = Off
; 连接到数据库时使用NT身份认证
;mssql.max_procs = 25
; 指定最大进程数,默认为 25
[Assertion]
;assert.active = On ; 断言(表达式),默认生效。
;assert.warning = On ; 为每个失败的断言发出警告。
;assert.bail = Off ; 默认不释放。
;assert.callback = 0 ; 如果断言失败,就调用一个用户函数。
;assert.quiet_eval = 0
; Eval the expression with current error_reporting(). Set to true if you want error_reporting(0) around the eval().
[Ingres II]
ingres.allow_persistent = On ; 允许或禁止持久连接
ingres.max_persistent = -1 ; 最大持久连接数。-1 代表无限制
ingres.max_links = -1 ; 最大连接数(持久和非持久)。-1 代表无限制
ingres.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]
ingres.default_user = ; 默认 user
ingres.default_password = ; 默认 password
[Verisign Payflow Pro]
pfpro.defaulthost = "test-payflow.verisign.com" ; 默认的 Signio 服务器; Default Payflow Pro server.
pfpro.defaultport = 443 ; 连接的默认端口; Default port to connect to.
pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间; Default timeout in seconds.
;pfpro.proxyaddress = ; 默认的代理的 IP 地址(如果需要); Default proxy IP address (if required).
;pfpro.proxyport = ; 默认的代理的端口; Default proxy port.
;pfpro.proxylogon = ; 默认的代理的登录用户名; Default proxy logon.
;pfpro.proxypassword = ; 默认的代理的密码; Default proxy password.
[com]
;com.typelib_file = ; 包含GUID文件的路径, IID或包含类型库的文件
;com.allow_dcom = true ; 允许分布式COM调用
;com.autoregister_typelib = true ; com_load()函数自动注册类型库组件常数
;com.autoregister_casesensitive = false ; 自动注册类型库组件常数时大小写敏感
;com.autoregister_verbose = true ; 对重复注册的常量显示警告
[mbstring]
;mbstring.language = Japanese
; 用于内部字符表示的语言
;mbstring.internal_encoding = EUC-JP
; internal/script编码。
; 注意:有些编码不能用于此(比如:SJIS, BIG5, ISO-2022-*)
;mbstring.http_input = auto
; http输入编码
;mbstring.http_output = SJIS
; http输出编码。必须将output_handler设置为"mb_output_handler"函数才可以。
;mbstring.encoding_translation = Off
; 允许依照mbstring.internal_encoding设置进行自动编码转换
; 打开这个特性会让输入的字符会转化为内部编码
; 注意: 千万不要将自动编码转换使用于可移植的库或者程序
;mbstring.detect_order = auto
; 编码自动检测指令
;mbstring.substitute_character =
; 当一种字符不能被转换为另一种字符的时候,这里的值就是替代字符。
;mbstring.func_overload = 0
; 用多字节字符串函数替换单字节字符串函数。
; mail(), ereg()...将被替换为mb_send_mail(), mb_ereg()...
; 可用0,1,2,4来组合。比如7表示替换所有。
; 0: 无替换
; 1: 替换mail()
; 2: 替换str*()
; 4: 替换ereg*()
[FrontBase]
;fbsql.allow_persistent = On
;fbsql.autocommit = On
;fbsql.default_database =
;fbsql.default_database_password =
;fbsql.default_host =
;fbsql.default_password =
;fbsql.default_user = "_SYSTEM"
;fbsql.generate_warnings = Off
;fbsql.max_connections = 128
;fbsql.max_links = 128
;fbsql.max_persistent = -1
;fbsql.max_results = 128
;fbsql.batchSize = 1000
[exif]
; Exif UNICODE用户注释将被处理为UCS-2BE/UCS-2LE ,JIS保持不变。
; 在多字节字符串的支持下 this 将被自动的转换为设定的编码。
; 若将mbstring.internal_encoding设为空,根据解码设置,
; 就可以区别motorola和intel的字节指令(解码设置不能为空)
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
[Tidy]
;tidy.default_config = /usr/local/lib/php/default.tcfg
; 默认tidy配置文件路径。
tidy.clean_output = Off
; 是否允许tidy自动清理和修正输出。
; 警告: 如果脚本可能会输出非html文档(比如动态图片),请不要打开此特性。
[soap]
soap.wsdl_cache_enabled=1
; 打开或者关闭WSDL缓冲特性
soap.wsdl_cache_dir="/tmp"
; SOAP扩展存放chche文件的目录。
soap.wsdl_cache_ttl=86400
; cache文件使用期限(秒)。过期后将使用新文件。
; 局部变量:
; tab宽度: 4
; End:

使用arp防火墙防止arp攻击

2011年11月1日 没有评论

我们先来了解下什么是arp

ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。

        二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。

         Windows操作系统,在命令行窗口输入”arp -a”命令可查看本机当前的ARP缓存表,ARP缓存表保存的就是IP地址与MAC地址的对应关系,我们来看一下

C:\>arp -a

Interface: 192.168.1.20 — 0×10003
  Internet Address      Physical Address      Type
  192.168.1.1           94-0c-6d-49-13-34     dynamic

“Internet Address”指的就是IP地址,”Physical Address”指的就是MAC地址。

 接下来我们了解一下ARP协议工作原理

ARP数据包根据接收对象不同,可分为两种:
    1. 广播包(Broadcast)。广播包目的MAC地址为FF-FF-FF-FF-FF-FF,交换机设备接收到广播包后,会把它转发给局域网内的所有主机。
    2. 非广播包(Non-Broadcast)。非广播包后只有指定的主机才能接收到。

   ARP数据包根据功能不同,也可以分为两种:
    1. ARP请求包(ARP Request)。ARP请求包的作用是用于获取局域网内某IP对应的MAC地址。
    2. ARP回复包(ARP Reply)。ARP回复包的作用是告知别的主机,本机的IP地址和MAC是什么。

    广播的一般都是ARP请求包,非广播的一般都是ARP回复包。

    假设局域网内有以下两台主机,主机名、IP地址、MAC地址分别如下:
        主机名   IP地址          MAC地址
        A        192.168.0.1     AA-AA-AA-AA-AA-AA
        B        192.168.0.2     BB-BB-BB-BB-BB-BB

    当主机A需要与主机B进行通讯时,它会先查一下本机的ARP缓存中,有没有主机B的MAC地址。如果有就可以直接通讯。如果没有,主机A就需要通过ARP协议来获取主机B的MAC地址,具体做法相当于主机A向局域网内所有主机喊一嗓子:“喂~谁是192.168.0.2?我是192.168.0.1,我的MAC地址是AA-AA-AA-AA-AA-AA
。你的MAC地址是什么,快告诉我”,这时候主机A发的数据包类型为:广播-请求。

    当主机B接收到来自主机A的“ARP广播-请求”数据包后,它会先把主机A的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,然后它会给主机A发送一个“ARP非广播-回复”数据包,其作用相当于告诉主机A:“嘿,我是192.168.0.2,我的MAC地址是BB-BB-BB-BB-BB-BB”。当主机A接收到主机B的回复后,它会把主机B的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,之后主机A和B就可以进行通讯了。

    从上述局域网主机通讯过程可以看出,主机在两种情况下会保存、更新本机的ARP缓存表,
    1. 接收到“ARP广播-请求”包时
    2. 接收到“ARP非广播-回复”包时

    这种机制,或者说ARP协议的设计,会不会存在问题呢?当然,不然怎么会有人利用来攻击呢?

ARP攻击会对我们有什么影响呢?最广的一种方式就是利用arp进行挂马!

用户在浏览某些网页的时候,网页中可能会包含一些恶意的代码,这就是俗称的“网页木马”,此种行为通常被称为“挂马”。

    网页中包含的恶意代码通常类似为:<iframe src=http://xxx/xxx width=50 height=0></iframe>

    “网页木马”并非万能的,它一般是通过系统中的漏洞(例如浏览器的漏洞、浏览器插件的漏洞等)来对用户的主机进行攻击,进而获取用户主机中的敏感数据,例如QQ号、网银账号、游戏ID等。如果你的主机已经安装了最新的安全补丁,大多数网页木马都无法对你的主机造成伤害。但是,也有不少网页木马是通过系统未公开的漏洞来攻击用户主机,即是说,即使你的主机安装齐全所有安全补丁,也无法做到100%免疫。

网页中为何会被插入恶意代码?

 1. 服务器被黑。服务器被入侵或感染病毒,硬盘上的网页文件被修改,被插入恶意代码。这种情况比较少见。表现形式:互联网上所有用户访问这台服务器上的网页时,网页上都会包含有恶意代码。

    2. 服务器被ARP欺骗。服务器所处的那个局域网内,有主机被黑客控制或者感染了病毒,服务器返回给用户的网页数据,在传输过程中被ARP欺骗程序、病毒程序所篡改,插入了恶意代码。表现形式:互联网上所有用户访问这台服务器上的网页时,网页上都会包含有恶意代码。

    3. 用户的局域网被ARP欺骗。用户所处的那个局域网内,有主机被黑客控制或者感染了病毒。服务器返回给用户的网页数据,在传输过程中被ARP欺骗程序、病毒程序所篡改,插入了恶意代码。表现形式:局域网的用户,在访问所有网站时,网页中都会包含恶意代码。

如何解决呢?

 1. 加强服务器的安全管理,避免被黑客入侵或者感染病毒。
 2. 安装ARP防火墙,避免受局域网内ARP欺骗程序、ARP病毒的影响。

在这里我介绍一个比较好的arp防火墙。经过我几年来实践测试还是非常不错的,可以有效的对arp进行防护。

彩影arp防火墙 官方网站 http://www.antiarp.com   安装过程不细说。

实践我们看看效果如何

遇到arp攻击时:

最关键的是可以知道谁在攻击我们,可以马上通知机房相关人员进行排查