安装DZ乱码前PHP7.0
8 G$ t: M$ I0 Z- q- J" d: n( m8 Z& Q; ^0 Q4 [0 j6 @. X2 x$ P
- [PHP]
9 @; l4 b9 X/ t" a- @8 P1 s5 h - $ ]* Y! j4 d0 \9 A p; s
- ;;;;;;;;;;;;;;;;;;;1 s; z+ Y0 e7 D0 L8 x! Y! H! w, i
- ; About php.ini ;* y0 r+ h- ]* `; o
- ;;;;;;;;;;;;;;;;;;;
/ E- d' w' w4 V% c; Z - ; PHP's initialization file, generally called php.ini, is responsible for+ N T0 J" _- M2 g9 ~3 ^6 Q
- ; configuring many of the aspects of PHP's behavior.3 @4 f/ P; ?- _
- 2 P* f5 `; f, C
- ; PHP attempts to find and load this configuration from a number of locations.
1 ~! a! t7 S% J, Y! X c - ; The following is a summary of its search order:1 G' o5 C2 F; B
- ; 1. SAPI module specific location.4 W3 l1 n0 ^: M. d) x+ E
- ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
- T1 t2 x$ G; i& |& {$ @ - ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
4 I. E) ^6 ?& T6 J/ D7 s' r - ; 4. Current working directory (except CLI)
, W1 t) l! o8 V8 ~4 H! E - ; 5. The web server's directory (for SAPI modules), or directory of PHP
; M$ N( l- b" \6 j9 o - ; (otherwise in Windows)8 q# d9 {) |+ c; r3 ~
- ; 6. The directory from the --with-config-file-path compile time option, or the# E3 I8 E1 G; [; w: q
- ; Windows directory (C:\windows or C:\winnt) Z. a( a0 ^0 v5 ?5 i+ {/ u$ F4 m
- ; See the PHP docs for more specific information.
; v0 o8 }& ^8 y: D4 W - ; http://php.net/configuration.file! l0 E3 i' V; r& W* q$ ~; H
- 0 |0 m: p* u2 o; k2 T) H! j
- ; The syntax of the file is extremely simple. Whitespace and lines0 c+ N6 D0 F0 w0 B
- ; beginning with a semicolon are silently ignored (as you probably guessed).
0 a1 s% b2 w8 c. o% D - ; Section headers (e.g. [Foo]) are also silently ignored, even though
! u& j, u6 R/ M, M: e9 m/ Z2 A - ; they might mean something in the future.' Y6 \. s( ~3 S) A* n2 x+ a/ C* M
* B0 m5 w- y4 w( r% P- ; Directives following the section heading [PATH=/www/mysite] only
0 Q: F- }% A& C) P/ i G5 J - ; apply to PHP files in the /www/mysite directory. Directives
6 m" i0 {- h9 v" h& I - ; following the section heading [HOST=www.example.com] only apply to! v4 F' c$ r3 a( P5 {4 f$ p, V
- ; PHP files served from www.example.com. Directives set in these8 X" d; ?) {( C: L) q- y
- ; special sections cannot be overridden by user-defined INI files or s1 b4 p4 F% \1 C8 o- A; D$ h. V
- ; at runtime. Currently, [PATH=] and [HOST=] sections only work under/ `6 }5 S9 b! m, H' h
- ; CGI/FastCGI.
) G. j7 N5 I3 \8 j5 g - ; http://php.net/ini.sections0 d& l" @, w9 k
- ; |! ~: N' X! l- g/ N( i' G6 f
- ; Directives are specified using the following syntax:- n# L4 m6 E1 N7 Y$ ]
- ; directive = value# z8 u4 }/ S! w! G
- ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
& c2 C' m* |/ n1 |& S' g9 `& ?) c( b - ; Directives are variables used to configure PHP or PHP extensions.
5 a- s8 |+ f4 K2 ^ - ; There is no name validation. If PHP can't find an expected9 A4 A- f$ T U4 G4 i" @
- ; directive because it is not set or is mistyped, a default value will be used.+ T, q0 T" v( Q' t
- 7 V5 V# R. Y# I9 ]% W+ g3 `
- ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one. D2 O6 J! ?# Z2 @7 y0 ~2 Z- i
- ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression4 k! |; N! U4 T1 O3 `& w3 q+ y
- ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
' Z1 T8 R' M" _- l - ; previously set variable or directive (e.g. ${foo})' V6 _* B/ o. W5 W! G8 B! l
- 8 |/ k' S# n+ U: ?9 Y. Q! }
- ; Expressions in the INI file are limited to bitwise operators and parentheses:
5 v4 M( I/ o1 x1 K/ ^1 g0 x# Y - ; | bitwise OR ?/ `2 @' ?& S1 N6 n) q
- ; ^ bitwise XOR3 D, k4 C% F- G& D+ v @0 f7 ~ O
- ; & bitwise AND
9 s/ Y7 [+ ~; s. I8 k - ; ~ bitwise NOT- }* s# A/ \! c& o/ ?5 P% x
- ; ! boolean NOT
; H7 U5 b% A! I# ? n7 }# p
0 K7 E- F! r2 D- ; Boolean flags can be turned on using the values 1, On, True or Yes.
0 s9 I; ^) b, Z8 }6 d - ; They can be turned off using the values 0, Off, False or No." I* G$ Z# q4 Z5 K) C. h
- . ]! R. W. j& I9 k# g6 d+ W% i
- ; An empty string can be denoted by simply not writing anything after the equal# o# j' C& w5 N- ^
- ; sign, or by using the None keyword:8 Y# Z6 ~9 r/ t2 l
# G C+ ~; x- ]( x% U. `- ; foo = ; sets foo to an empty string
! i+ l S) I3 T* W6 Y# U" g - ; foo = None ; sets foo to an empty string3 W# O# L! j7 N) Q- E* d4 c6 D( T- Y
- ; foo = "None" ; sets foo to the string 'None'
- W% ]' b& o4 c) O. u
& {+ p1 P* K$ B* p+ N& c2 K( M7 C- ; If you use constants in your value, and these constants belong to a
) c0 I8 l% }/ R( ] - ; dynamically loaded extension (either a PHP extension or a Zend extension),
/ J2 ~3 z' o! s8 F d4 L - ; you may only use these constants *after* the line that loads the extension.
3 l# ~ }$ r! F2 l) a% K - * W6 v/ r4 h: N- W4 ^( c- T
- ;;;;;;;;;;;;;;;;;;; R# ?# @' @6 o$ P* C5 ~
- ; About this file ;
* ^* X, m" { C - ;;;;;;;;;;;;;;;;;;;
( P( E( n2 T+ w) p; V p - ; PHP comes packaged with two INI files. One that is recommended to be used V$ z N) G- h% V
- ; in production environments and one that is recommended to be used in
8 ]2 y3 q, {" m6 S, b, [" }; ] - ; development environments.
0 S3 B% G* n3 m# a# F - 6 j/ t3 Z6 s. J2 j* w
- ; php.ini-production contains settings which hold security, performance and/ [) w5 Q2 f5 n: `! \% o" Q2 K( j
- ; best practices at its core. But please be aware, these settings may break
& ]+ p7 E' e# J ~! u - ; compatibility with older or less security conscience applications. We) G j9 s( H! O9 _! f
- ; recommending using the production ini in production and testing environments.# i i5 c ~- _1 _ d# h
- 0 v; `- t( `. h7 v
- ; php.ini-development is very similar to its production variant, except it is7 D( ^( c3 g+ \8 B- K
- ; much more verbose when it comes to errors. We recommend using the# Y' w: L: ~7 _0 f4 p' |( c5 V
- ; development version only in development environments, as errors shown to) Z4 F" a* u0 j! g& o C
- ; application users can inadvertently leak otherwise secure information.
: K5 s" n2 f6 K2 |
8 C2 C: f& }* B* d- ; This is php.ini-production INI file.0 j/ ]9 c0 Y% z" M
! |7 `3 Z C- \: U: I1 _* c- ;;;;;;;;;;;;;;;;;;;
+ K' A- R0 S( i1 j# Q' d. [ - ; Quick Reference ;. A7 F, D: K3 Z
- ;;;;;;;;;;;;;;;;;;;
' C/ X. Q3 E! V* x- X) W - ; The following are all the settings which are different in either the production
& }2 ?& @" j9 y# K) E - ; or development versions of the INIs with respect to PHP's default behavior.( @( @$ Z% a; C- a0 T: h
- ; Please see the actual settings later in the document for more details as to why
8 F; a; U' _& t' X - ; we recommend these changes in PHP's behavior.
; R; r9 V! X4 [6 P# b& q. q - ( c/ V8 I& V2 Y& T0 F5 w
- ; display_errors! L: D8 S" f( u2 n8 M' Q1 x+ _. Y
- ; Default Value: On1 r" u- y7 B" R
- ; Development Value: On
( @8 s! R) N0 q6 l# y* B - ; Production Value: Off; `/ z7 j: |1 _3 \8 V" R
- 6 s$ |8 [: i- Z
- ; display_startup_errors
/ k3 ] S9 h( J. I9 L - ; Default Value: Off
1 U5 }2 Q$ Q6 }5 j - ; Development Value: On& D* o% I6 u" s
- ; Production Value: Off; m( P2 {7 n7 K4 I% {
- 9 d2 ]% a4 C9 Q& {# A5 p& _
- ; error_reporting
4 \0 {! t! _, ]4 c4 ~4 G% D# [9 V - ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED( ~. F9 }6 ^9 f3 s# k4 w, n5 _
- ; Development Value: E_ALL
' c! |8 n) C- Y1 q# T - ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
3 z# Z2 [% j, e - ' M2 q) c2 P4 T2 ~4 P
- ; html_errors5 f& ^) @. x, v" @- x" ~5 F
- ; Default Value: On9 `4 m5 r2 E! p0 m& C1 b( I/ ~
- ; Development Value: On; A4 P( ~8 V) B8 z' ^
- ; Production value: On9 [7 g3 L2 K, s+ T2 V' T
- $ c( G E6 }- t' ^
- ; log_errors
, N# w! ^( J# S6 q' f% z - ; Default Value: Off+ ^+ i2 F9 K" b7 [& D% y
- ; Development Value: On
2 g, v0 H3 ?) \/ G5 _1 L* ] - ; Production Value: On* Q3 @% S! [3 X/ b0 [
- 4 P4 q- k, |0 z8 y8 G" [1 r5 k
- ; max_input_time
: k- \0 s+ y( R$ S* O/ _ - ; Default Value: -1 (Unlimited)& n g7 C4 T9 T7 _8 l! G
- ; Development Value: 60 (60 seconds)
l7 @$ F1 U2 {7 w* j) u# X - ; Production Value: 60 (60 seconds). q; {: d' h" P, R" T @
- 0 h3 Q0 }2 T/ v. K! `; s1 g, `) r
- ; output_buffering3 s8 g6 ]' |) U5 N6 n
- ; Default Value: Off
7 j) x0 M- y5 g( O/ w- P - ; Development Value: 4096
( M- t4 C9 {8 s# P* q5 D- r - ; Production Value: 4096. O9 c6 S( j n: ]% c. R, }
- 6 |+ f2 c- L$ \6 z" p6 |
- ; register_argc_argv
7 w3 [& y2 ~# h4 B0 C, s! `' c - ; Default Value: On
! h4 o1 P3 n6 ]8 w2 A - ; Development Value: Off2 G% k' k. N2 y' g* h( d
- ; Production Value: Off
2 @ d! a# M: Y8 i7 w
g& i: d8 @" M) ]' a1 }& @- ; request_order; a" h! j9 \8 V
- ; Default Value: None
S; G0 p* [3 M1 P' b7 T* @" N - ; Development Value: "GP"
6 }, c, P) p% t% }4 d3 W( l- c - ; Production Value: "GP"
7 w; e1 u& [/ ]8 Y - 2 m! j* w3 R" u6 Q* a: |
- ; session.gc_divisor* O; v V& C+ R& v
- ; Default Value: 100' o1 `3 ` n( ? v
- ; Development Value: 1000/ X% u. T; R6 D" `; p2 {
- ; Production Value: 1000; ]) U9 W7 H2 w6 H( }/ _
- 5 I( ^3 K" {5 Y4 s+ L; [, f5 B
- ; session.hash_bits_per_character$ w, M/ ]9 q) x3 G$ S
- ; Default Value: 4
# i) p% Y& ~: h7 q8 l - ; Development Value: 5
- Q! k# I; m3 \4 r0 } - ; Production Value: 5& p: p9 o' p# ?4 ^$ [
- / B g; m @9 _; C7 E; q
- ; short_open_tag& `# |- r7 P7 n/ j' n' D" {
- ; Default Value: On
; v+ r- O9 i( D, o2 G- l. ~( x: ] - ; Development Value: Off1 X: F0 \1 |0 ]3 F4 ~. ^" b2 L1 c
- ; Production Value: Off
) c5 ~+ T; y# h4 }# M
, J+ ~% w: L$ b* T- ; track_errors
! F9 j5 h9 C$ N - ; Default Value: Off3 q* a+ w# ]7 f' Q% @! P
- ; Development Value: On* x) Q6 c5 `: A# Q
- ; Production Value: Off
0 M: q( p }/ x- a
8 t3 D' [+ a6 h3 \1 B+ n/ v- ; url_rewriter.tags
% Y" Z9 {/ _$ U0 `" P/ G - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
2 u: g3 E7 J2 g+ d7 J1 S& O# V5 d - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"6 o+ w$ O' D- k. Z! e
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
8 r( A3 ?! ]5 _$ f* D. U
% Q6 q" [( y* J& p# I% E" x, @( M- ; variables_order
/ ~) b2 T( G, S* y. V, I - ; Default Value: "EGPCS"
0 `3 ]" P- d& t, A- s( c - ; Development Value: "GPCS"
! ]4 X5 B9 x7 [' i) I6 a; Q& h - ; Production Value: "GPCS"
1 m2 I" `( ]; \9 `
$ X7 @7 Z' F, W, u' e: B7 | l- ;;;;;;;;;;;;;;;;;;;;
* S) L* s8 ~9 Z6 X - ; php.ini Options ;& g3 T" p9 d2 }( |
- ;;;;;;;;;;;;;;;;;;;;
: E# M+ a* q6 T. i' r7 I# f - ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
3 y3 Y- \* K; K; ~9 E+ E- f! l - ;user_ini.filename = ".user.ini"4 i, u( c& m' Z* u! }1 B
: m. F, v9 {- S- N# f0 F1 j/ E/ e- ; To disable this feature set this option to empty value. e# x- H% h$ K
- ;user_ini.filename =
4 n; m6 C0 t4 E5 Y/ J. b- K
; {' f/ G* J5 W: s: A- ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)6 J/ B* D) D; C
- ;user_ini.cache_ttl = 300; S% G+ s6 u7 V# W- U1 Y
- 1 q$ Y4 F: K/ _2 Q' N# W
- ;;;;;;;;;;;;;;;;;;;;( h0 R& L, ?: i4 R* v1 Q( x% i% _
- ; Language Options ;
) z, t! V( ^$ d% ]9 }3 Y3 W1 { - ;;;;;;;;;;;;;;;;;;;;/ M& ~6 I6 w% s
- & @5 q5 X" d6 n# ?, @& W8 U
- ; Enable the PHP scripting language engine under Apache.1 ?8 R. ?1 D) a' |) ]
- ; http://php.net/engine; }4 V1 R6 e$ |
- engine = On
5 z& P# _( [+ K3 U+ \ e - + m# Q6 Z, N( l* p- c( _
- ; This directive determines whether or not PHP will recognize code between
3 e- k: s+ p$ j" }8 c" J- u$ M! d' H - ; <? and ?> tags as PHP source which should be processed as such. It is
' F, h. d: j* y/ Q; t - ; generally recommended that <?php and ?> should be used and that this feature1 X0 k% _* j. T: ]$ O8 C
- ; should be disabled, as enabling it may result in issues when generating XML
+ X3 c- }- D2 B4 K8 J - ; documents, however this remains supported for backward compatibility reasons.
7 ^! J: c0 X! Q. H% M, K1 c - ; Note that this directive does not control the <?= shorthand tag, which can be. a9 [; B3 E5 s9 ^( e9 t9 s
- ; used regardless of this directive.
0 w9 v! P: U; K" D |$ [ - ; Default Value: On- Q6 l4 Y+ Q+ d# G3 r" s) @
- ; Development Value: Off4 s3 y- u9 T4 x# ^) z
- ; Production Value: Off5 h e# F6 o' u
- ; http://php.net/short-open-tag, I9 I' Q {0 |( M+ N7 |2 `/ Y
- short_open_tag = On
8 W J, F8 K2 X. [ - r$ _0 T# t* {) W3 t3 g
- ; The number of significant digits displayed in floating point numbers.
- U6 P8 W& S4 H - ; http://php.net/precision
$ Z0 Z6 p7 p3 X+ D/ x3 T9 j. Z$ a - precision = 14, s8 J4 m' o% n7 c. S
- * p* `- V* z' f3 T: d9 O
- ; Output buffering is a mechanism for controlling how much output data* h! z# [, x8 X
- ; (excluding headers and cookies) PHP should keep internally before pushing that7 S% z6 y& Z; f+ v8 J2 E7 H" _
- ; data to the client. If your application's output exceeds this setting, PHP0 i6 V' F8 l' H# |" Y' d
- ; will send that data in chunks of roughly the size you specify.# @9 e/ z' X+ V a
- ; Turning on this setting and managing its maximum buffer size can yield some
3 V2 w: _- A6 c6 Y - ; interesting side-effects depending on your application and web server.
& O/ H- Y) ]; p2 E# N/ ] - ; You may be able to send headers and cookies after you've already sent output
/ O1 D8 N/ s* a6 a9 ^ - ; through print or echo. You also may see performance benefits if your server is& C1 T7 M( a3 L/ D) Z+ ]0 w
- ; emitting less packets due to buffered output versus PHP streaming the output
/ G- [% S' Q% _) u! f - ; as it gets it. On production servers, 4096 bytes is a good setting for performance1 J0 q& u( L; V0 x( R
- ; reasons." s# X7 z. b# j. v/ {" w
- ; Note: Output buffering can also be controlled via Output Buffering Control
: M( [' M5 Y6 P - ; functions.9 `+ w( C: B7 u) k; U
- ; Possible Values:6 [; R- |8 J. R3 F8 C4 T- V; f! [
- ; On = Enabled and buffer is unlimited. (Use with caution)
5 o4 i# w% m0 f" a5 W - ; Off = Disabled
6 q/ z& D( r4 n7 W- l - ; Integer = Enables the buffer and sets its maximum size in bytes.& I$ a# M5 I7 ^+ S( |
- ; Note: This directive is hardcoded to Off for the CLI SAPI9 a, V; p8 C+ B; y. h6 K
- ; Default Value: Off' T& H2 X% Q( }/ w8 }
- ; Development Value: 4096
! c1 w* u9 o& [" Y/ s - ; Production Value: 4096( }& ? y) b' o$ A
- ; http://php.net/output-buffering
6 O! r& C6 h/ l6 d- Z u4 d - output_buffering = 4096+ m5 R# K0 x( r/ w# H
- ! A$ F2 |2 Y: f |: U$ h
- ; You can redirect all of the output of your scripts to a function. For
5 z8 b% U# s* y/ J- ?1 Q - ; example, if you set output_handler to "mb_output_handler", character
( |" w8 \ d6 i h x9 ]) } - ; encoding will be transparently converted to the specified encoding.3 R- M L. b2 k0 N, U5 o
- ; Setting any output handler automatically turns on output buffering.5 J9 R; W# [* v) n3 V b. z4 h
- ; Note: People who wrote portable scripts should not depend on this ini
. M5 p8 Y! z$ v- q" r - ; directive. Instead, explicitly set the output handler using ob_start().
6 `1 G: { ^* M9 _- p - ; Using this ini directive may cause problems unless you know what script
3 ?1 W L4 }8 V- k) g, Q - ; is doing.
# d" z9 l1 v& z8 S" g - ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"" d U9 |5 P( [5 ~. a$ S2 x
- ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
* J& k! @* k2 a* }( T# H4 w - ; Note: output_handler must be empty if this is set 'On' !!!!
) F2 `* ^! D0 t+ @+ x% S9 E1 z - ; Instead you must use zlib.output_handler.2 k% x* d9 q. C T+ b
- ; http://php.net/output-handler8 o. N ?- q7 @' T1 ?7 z0 j* k" W
- ;output_handler =
' o# p0 Y/ D+ h/ ?7 K - 7 ?' `7 T, `1 [7 G9 o |7 x# I
- ; Transparent output compression using the zlib library; o" h" s$ y/ a c1 p
- ; Valid values for this option are 'off', 'on', or a specific buffer size
- s0 Y% u3 p7 \* p2 [- B$ s G& |+ c - ; to be used for compression (default is 4KB); n4 A; D- D Q Q8 }
- ; Note: Resulting chunk size may vary due to nature of compression. PHP
" ~' F! F% w3 I: j# ]% g( J' O - ; outputs chunks that are few hundreds bytes each as a result of8 S& v, {6 _7 C/ {
- ; compression. If you prefer a larger chunk size for better
8 i1 D3 l2 g6 H7 V3 @) L - ; performance, enable output_buffering in addition.& g$ V: H4 h( j9 L" z% X
- ; Note: You need to use zlib.output_handler instead of the standard( X1 S: z1 v+ f7 Q8 Y
- ; output_handler, or otherwise the output will be corrupted.5 `) w ]& ?4 Z% t# N1 n9 D2 u* i
- ; http://php.net/zlib.output-compression- ]$ _& g, S7 W9 D) {
- zlib.output_compression = Off
3 K5 Q3 e c/ c7 U+ w- h. X
* O/ b$ M5 s* @6 W$ f- i- ; http://php.net/zlib.output-compression-level! K \* Z5 K, f; ^' F
- ;zlib.output_compression_level = -17 _) I/ o+ H; v( h. ?% |4 v
) P0 M: D# i$ P# U, t- ; You cannot specify additional output handlers if zlib.output_compression# D; F$ k- B( W8 R# w
- ; is activated here. This setting does the same as output_handler but in# g# ~. w; q' d2 C
- ; a different order. X( {9 l6 b/ F/ x" F
- ; http://php.net/zlib.output-handler
/ _8 j6 r/ z3 }) N- i% T - ;zlib.output_handler =$ e3 o6 d- @% k
- 9 x' Y! d) Z& Z) h+ s* e8 `7 j- j
- ; Implicit flush tells PHP to tell the output layer to flush itself* a$ g, m; t8 `# o7 D
- ; automatically after every output block. This is equivalent to calling the
9 Z; }7 e/ ]0 I |4 _- ^1 m - ; PHP function flush() after each and every call to print() or echo() and each! Y# z [0 @ ^5 G6 |: M
- ; and every HTML block. Turning this option on has serious performance
% n1 v: E# u/ \- b( `1 \& ^- V - ; implications and is generally recommended for debugging purposes only.6 q' \& J" [1 G$ t; x" F j% l. E
- ; http://php.net/implicit-flush w$ @. X5 D# e3 A0 x9 }- ~
- ; Note: This directive is hardcoded to On for the CLI SAPI
2 e2 F+ @4 |5 n! |2 K- \ - implicit_flush = Off9 ] V; p( f9 J7 d
- I% e3 R) r8 \/ P- ; The unserialize callback function will be called (with the undefined class'
Q) x) K; j x0 N+ J0 v5 c - ; name as parameter), if the unserializer finds an undefined class/ @5 v/ x+ V* p: x7 u
- ; which should be instantiated. A warning appears if the specified function is
' f6 `& s, S! X% K, S - ; not defined, or if the function doesn't include/implement the missing class.
+ O& e: j! w( [* E) W* i$ _( d - ; So only set this entry, if you really want to implement such a
0 B! }9 w0 w* H- w! J) o& a8 a! g+ Z! \ - ; callback-function.
/ F. M- g9 a. s7 I - unserialize_callback_func =
+ y! ~. @1 I" B8 `9 X0 g( ` - 0 B$ Q7 _5 t8 j: }! t$ w8 W$ O
- ; When floats & doubles are serialized store serialize_precision significant2 R: q; i. p0 B
- ; digits after the floating point. The default value ensures that when floats
1 k8 t+ I4 h1 m3 J - ; are decoded with unserialize, the data will remain the same.& v0 y# V& ]. i
- serialize_precision = 17/ {- M9 s) f; X5 H- |/ {
- 4 ` ^0 g8 r9 E) z5 c2 t& `" A4 Y$ E# }
- ; open_basedir, if set, limits all file operations to the defined directory1 V! G7 B# s; A
- ; and below. This directive makes most sense if used in a per-directory
& w2 _2 T$ b' I+ f$ @$ H% ^ - ; or per-virtualhost web server configuration file.
) D2 k6 S) g5 Z - ; http://php.net/open-basedir: ?7 W% C' x: t; l# r
- ;open_basedir =
0 m+ _# | |4 w, f. U: Y - ! X1 M; W& F: h
- ; This directive allows you to disable certain functions for security reasons.
" z+ k$ ^0 S5 f1 H2 H$ M - ; It receives a comma-delimited list of function names.; E8 j" X% k; a5 j
- ; http://php.net/disable-functions c6 l: g4 o- ?8 R$ Q5 s% F5 L1 p6 G
- disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
6 W: w# l6 e5 O; q
' @% e! V! p' \" ?- ; This directive allows you to disable certain classes for security reasons.2 r& L! s: T, R+ h9 F) p! X
- ; It receives a comma-delimited list of class names.
0 s: y7 G2 t5 F! b - ; http://php.net/disable-classes; k- H( \) A! ~7 X b$ H0 f7 k b
- disable_classes =6 C4 @7 z; g6 ?3 ^! b
- 9 O+ c4 m" J* e2 j0 C
- ; Colors for Syntax Highlighting mode. Anything that's acceptable in
7 D: z: k3 E- K* c - ; <span style="color: ???????"> would work.) T0 A+ Z% n4 n( D' L5 k* k
- ; http://php.net/syntax-highlighting
1 s0 f9 [; ^4 Y1 S6 e+ P5 ? - ;highlight.string = #DD0000
' E/ @; I( d+ ^5 y& U) ? - ;highlight.comment = #FF99001 l; n7 s: @; q! S
- ;highlight.keyword = #007700
1 R# D! `# q* [- {3 O - ;highlight.default = #0000BB
0 Z3 }0 R3 L. i - ;highlight.html = #000000
, R9 m8 `* S2 s8 R: k$ m+ V8 V - : |& S5 i9 I r! ~
- ; If enabled, the request will be allowed to complete even if the user aborts
* H- |/ c; d7 K6 I( v - ; the request. Consider enabling it if executing long requests, which may end up
, ]+ T9 e* p' u8 } - ; being interrupted by the user or a browser timing out. PHP's default behavior) g# t3 w: \0 }: n- M
- ; is to disable this feature.
4 v8 q* K6 U& [4 ]6 Y - ; http://php.net/ignore-user-abort# \4 U5 n0 `; D0 o1 L7 T0 H
- ;ignore_user_abort = On
' c; V {5 M+ c: ~0 D - ; v4 ]0 B& Q3 Y: g) r8 q* X! M, B
- ; Determines the size of the realpath cache to be used by PHP. This value should
0 q' e6 U4 J# K# Y* O - ; be increased on systems where PHP opens many files to reflect the quantity of
1 e* B6 l( h5 d; i" d5 T; |! C - ; the file operations performed.0 J7 x* S, P; r0 z4 M
- ; http://php.net/realpath-cache-size- q1 g8 {. `/ Y% e9 h9 O4 ]) s
- ;realpath_cache_size = 4096k
/ |; S: p1 ]* O6 x. ~6 ]; j @
- d$ ]) W R% n) |5 `+ S- ; Duration of time, in seconds for which to cache realpath information for a given. M5 D( {+ Q' s) Z3 y) _7 Q5 Q
- ; file or directory. For systems with rarely changing files, consider increasing this, }1 e& X' d, d$ ^" R
- ; value.
: H; C6 l8 [0 p - ; http://php.net/realpath-cache-ttl
r7 x. A# `7 J. M4 h - ;realpath_cache_ttl = 120: }( P* a! i L( v: W1 V
- - k+ X6 n% W( W
- ; Enables or disables the circular reference collector.* ` q1 t0 `5 v5 }3 r6 Q/ Z
- ; http://php.net/zend.enable-gc: {+ c' y: R' k3 |+ w$ }, ^
- zend.enable_gc = On, ~7 F# G, D' X( U: _7 h, q& h
- O! i9 Z" @+ Y( A3 U, E" h& ]- ; If enabled, scripts may be written in encodings that are incompatible with& t6 l; N# c# C8 Z2 k6 {) }4 n6 m l2 C
- ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
2 }6 ^) q" q6 A3 @2 _+ B - ; encodings. To use this feature, mbstring extension must be enabled." I) N8 j7 {- p k* G/ O
- ; Default: Off
, ~# b+ Y: \& h+ h+ q2 T" I - ;zend.multibyte = Off' Q* k# B, V- X% {& G
; l# W. d. j& J# d- ; Allows to set the default encoding for the scripts. This value will be used
' O" x7 t, H2 e2 g% Q) R - ; unless "declare(encoding=...)" directive appears at the top of the script.: |, _2 Z3 y% y
- ; Only affects if zend.multibyte is set.
5 I/ A8 b9 i3 S8 q - ; Default: ""$ m' ^4 [* a: D' \
- ;zend.script_encoding =
) V7 f' v9 o7 Y/ m. n - 8 B- X# W, g% r6 B/ r7 e$ H0 F
- ;;;;;;;;;;;;;;;;;' v% \* W# N: T, h, I% N1 A
- ; Miscellaneous ;7 w& L4 j; o% D2 J5 D, Y
- ;;;;;;;;;;;;;;;;;# Q. ~% J7 S- J( o) p" a
- 7 V5 V4 V! c2 K% x+ p+ I
- ; Decides whether PHP may expose the fact that it is installed on the server' o5 m5 Z, V C7 e, l
- ; (e.g. by adding its signature to the Web server header). It is no security
/ ^2 J' [9 ]' R' v" p6 ?. p8 y - ; threat in any way, but it makes it possible to determine whether you use PHP1 u+ ^! z- W9 f1 }" M
- ; on your server or not.
, X- |" h$ Y3 E3 I& J4 m( B - ; http://php.net/expose-php: A: ^0 k$ r- _
- expose_php = On
; I# @8 {5 Y2 I5 k! {( A1 q- }
8 t* V3 y' D& y$ ^/ Z1 N. m- ;;;;;;;;;;;;;;;;;;;* f; |$ z/ K1 ? ]8 q
- ; Resource Limits ;
7 X* D* f# Z* N% }6 _ - ;;;;;;;;;;;;;;;;;;; x3 ], w& {1 p. H) r- `8 r
- 0 N# f: X; M8 x! F d4 U
- ; Maximum execution time of each script, in seconds$ v5 ?( U |" m2 C& m7 ?7 o
- ; http://php.net/max-execution-time
) ]9 A$ I( {7 w& o4 ] - ; Note: This directive is hardcoded to 0 for the CLI SAPI
% v8 t$ U% L# l+ A - max_execution_time = 300$ }" r. A" k1 ], @
! h& G; z+ P* M- ; Maximum amount of time each script may spend parsing request data. It's a good
: v5 ]5 }% s2 Z5 ?9 e$ ? - ; idea to limit this time on productions servers in order to eliminate unexpectedly/ E2 \ q$ S1 g6 n R4 V0 e
- ; long running scripts.
7 M( W2 D, r$ |/ m1 B3 C1 x4 R - ; Note: This directive is hardcoded to -1 for the CLI SAPI6 ?* \# F1 j# Q" f
- ; Default Value: -1 (Unlimited)
% U9 p; ?5 n* L% w - ; Development Value: 60 (60 seconds)
# r' c6 W7 l3 N2 C6 g- ]6 T* r - ; Production Value: 60 (60 seconds): f/ I9 q( ~; ^+ y* p
- ; http://php.net/max-input-time; F# H( r3 X+ i F
- max_input_time = 60
. h" z$ }( s( B6 A - + B$ S) g, J" [5 M0 y
- ; Maximum input variable nesting level
; O- e" X8 Y. Y. w ^; c- I - ; http://php.net/max-input-nesting-level
9 p9 o. X2 t/ Q) m% ~/ b( \ - ;max_input_nesting_level = 64
( _* Z9 c$ n0 L7 B - 5 v) L& n4 _1 r. t9 k# F7 r
- ; How many GET/POST/COOKIE input variables may be accepted4 a, W1 M/ i4 H' [, ^$ r
- ; max_input_vars = 1000
5 @9 \! A6 B; d% l4 Z6 z - ; p- e3 y4 I8 ?4 Y% g$ p
- ; Maximum amount of memory a script may consume (128MB)
, L3 n% X8 Q, j& a# C - ; http://php.net/memory-limit) M" w4 \- l" P! }. Y/ z! w* b
- memory_limit = 128M1 Y4 A8 K! J$ v) u) w
. `; x4 n1 T( ^: y# M- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 p# H1 K" Y; n5 B! ^' c - ; Error handling and logging ;
; k- O. ~% ~7 y$ } - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. g& ^! Z x6 Z' ~$ S( o
- $ w9 k# X- L7 i2 l) D
- ; This directive informs PHP of which errors, warnings and notices you would like
2 g* l( q* t7 S - ; it to take action for. The recommended way of setting values for this
4 |" B; P! }2 u: @3 C' e* T; i - ; directive is through the use of the error level constants and bitwise1 |, W7 j1 e% {
- ; operators. The error level constants are below here for convenience as well as
& W- K& ~. g: T( E5 ?1 x, H1 R - ; some common settings and their meanings.
( i/ [! H" B$ t+ Q) ?5 l - ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
" N$ w$ v) P: l, Z6 ]! q: F - ; those related to E_NOTICE and E_STRICT, which together cover best practices and3 }( A2 o: \7 m) {* b+ k
- ; recommended coding standards in PHP. For performance reasons, this is the
& g/ g, l: x; B - ; recommend error reporting setting. Your production server shouldn't be wasting% D* Y) j* ?, f7 w4 B8 j q* u
- ; resources complaining about best practices and coding standards. That's what) m2 L2 X2 R U/ c
- ; development servers and development settings are for.: a+ p, B$ @! z$ I$ |
- ; Note: The php.ini-development file has this setting as E_ALL. This
, Q* r# Q5 ?0 v" X5 Y! X @ - ; means it pretty much reports everything which is exactly what you want during8 M, n, T g& Q% w b i0 _
- ; development and early testing.
) W7 j* p, I: {, x/ e. }" h: A - ;, h* \# O! \ t9 g- Y4 ?: b
- ; Error Level Constants:
) p" M" k u1 g$ S4 M4 v - ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)) B$ W! E: A" x$ m7 ], Y7 \
- ; E_ERROR - fatal run-time errors) l$ @: x5 C$ `; O [ A
- ; E_RECOVERABLE_ERROR - almost fatal run-time errors" R( Q- a' ^5 S8 G0 [8 U
- ; E_WARNING - run-time warnings (non-fatal errors)2 b; \$ f8 }, z+ H2 n! C
- ; E_PARSE - compile-time parse errors
; W( B3 p" S( @* } - ; E_NOTICE - run-time notices (these are warnings which often result
! [/ ~/ e3 \2 A( C+ h: x - ; from a bug in your code, but it's possible that it was
% ^& \. w/ r& p; ~4 V, f' G - ; intentional (e.g., using an uninitialized variable and
' W! y* w3 P7 ~/ @# P7 h4 K - ; relying on the fact it is automatically initialized to an
( [6 G# F2 g' q: P- b# \6 R - ; empty string)
$ F) K. a" g% X0 c0 f - ; E_STRICT - run-time notices, enable to have PHP suggest changes
6 X4 |1 S9 A7 w - ; to your code which will ensure the best interoperability/ B6 _6 w/ Y# ~
- ; and forward compatibility of your code' A# O- J9 ]4 s6 B
- ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
5 L9 ]8 j! \4 x" j% |5 C - ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's" x& N! ^7 J2 D$ |4 C8 r+ u& ]
- ; initial startup
/ a: W2 n2 S9 A4 C3 S - ; E_COMPILE_ERROR - fatal compile-time errors9 P+ A+ R0 v! y4 ]3 g% R" [
- ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
; `$ S2 t, R5 G/ u8 F - ; E_USER_ERROR - user-generated error message
, c: ~1 \7 R/ K* O4 E. a. J - ; E_USER_WARNING - user-generated warning message
3 F% W% P d* l# O - ; E_USER_NOTICE - user-generated notice message1 i3 @: M' r5 e( _% _+ y- \6 v' C
- ; E_DEPRECATED - warn about code that will not work in future versions0 w0 U/ Q7 T1 [
- ; of PHP5 G! g0 S7 N ?; P9 {: |( B: @: t
- ; E_USER_DEPRECATED - user-generated deprecation warnings' _: w# n2 B" n& E! x0 u! _
- ;; T$ ], s9 o+ p' ]
- ; Common Values:
. y6 x! B& @6 s& [ - ; E_ALL (Show all errors, warnings and notices including coding standards.)
u6 y$ [2 x4 Y- x5 Q) r - ; E_ALL & ~E_NOTICE (Show all errors, except for notices)' I4 O$ O; y/ q4 @) Z
- ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)8 \0 N7 w7 |% c) v$ ^/ k
- ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
8 y$ d7 l9 N% B* v* [ - ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
) t9 _$ U7 `2 P+ P - ; Development Value: E_ALL( j- X# T. h$ F5 W. k0 I
- ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
0 H$ q2 S+ z* n - ; http://php.net/error-reporting6 X6 e8 O8 P* D4 U; \0 H
- error_reporting = E_ALL & ~E_NOTICE
9 _4 ~6 _/ }- F/ y8 N* R - : ?. u: M' B/ T4 [+ i7 {/ t
- ; This directive controls whether or not and where PHP will output errors,
0 s/ m8 R% j9 d) S - ; notices and warnings too. Error output is very useful during development, but
m& ~4 |. V9 a" m - ; it could be very dangerous in production environments. Depending on the code
% L6 l" Y9 |+ a7 | - ; which is triggering the error, sensitive information could potentially leak8 l; C5 q# l6 C" A$ @# H
- ; out of your application such as database usernames and passwords or worse.) h! i/ |# ]$ ?
- ; For production environments, we recommend logging errors rather than5 S6 q! @" Z3 a
- ; sending them to STDOUT., V+ _! f1 O, o& S z" a
- ; Possible Values:
4 D/ o/ `# y. M$ p+ P7 l$ F; G s V - ; Off = Do not display any errors
) o _' W5 r2 v4 E: K1 {' b8 p- I - ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)' A, K% b: C: N( l
- ; On or stdout = Display errors to STDOUT6 f" `4 p9 ?/ @2 J
- ; Default Value: On
/ z9 @- X& z7 C% ^' x6 K - ; Development Value: On
5 }1 i+ ]) N" ]9 r. S, p$ q - ; Production Value: Off
( Z% ^8 g) w0 S1 V( |( O4 u - ; http://php.net/display-errors( T/ V6 o# F8 C" z) G+ i; C
- display_errors = On
0 S+ X! w$ k: ~
' n8 p5 V# U/ z9 I! d3 M3 C- ; The display of errors which occur during PHP's startup sequence are handled4 I# D1 Z4 j( s( M5 ]
- ; separately from display_errors. PHP's default behavior is to suppress those# I$ a- F" x2 r$ V
- ; errors from clients. Turning the display of startup errors on can be useful in# c( d) p& @( @9 B
- ; debugging configuration problems. We strongly recommend you% k A( Q& c8 Z+ C( E; b; |
- ; set this to 'off' for production servers.' I- Z1 R' i# j$ \; I, o5 N
- ; Default Value: Off3 @: S0 h* \9 x3 S$ m# o
- ; Development Value: On
' T6 d0 B2 f5 W' }3 C8 D1 a5 F - ; Production Value: Off
+ }; Z1 ^* l7 x1 z- l. h - ; http://php.net/display-startup-errors
# ]) N9 K+ k0 f) E - display_startup_errors = Off* ^' E2 {/ B& D' ?
! r5 q, g2 k W w# Q" F- ; Besides displaying errors, PHP can also log errors to locations such as a
- Q; K! d( Z! S) ]; s - ; server-specific log, STDERR, or a location specified by the error_log
' Z0 [. i I# X: l - ; directive found below. While errors should not be displayed on productions5 X4 Q& ?8 v# t# X, R
- ; servers they should still be monitored and logging is a great way to do that.
8 K9 x/ U3 k0 O7 l - ; Default Value: Off) {! q# [6 \) @$ `: z7 ~$ Q9 v, o3 p
- ; Development Value: On; M1 f O- b: W! N
- ; Production Value: On( n! P( [- q' y# A
- ; http://php.net/log-errors7 ]) a- ~" r M% R$ e6 F
- log_errors = On O5 m+ n0 r, E1 W& D6 s
! M/ t7 v! B5 Q% n1 _- ; Set maximum length of log_errors. In error_log information about the source is
0 U: W9 l. C* H# A" A - ; added. The default is 1024 and 0 allows to not apply any maximum length at all.9 Q. w4 X! t, U2 Q9 n& C
- ; http://php.net/log-errors-max-len
6 \/ s& F8 o% t- t0 w1 `- g - log_errors_max_len = 1024
! X9 d( x0 t! n t
2 h& s4 |! i4 m1 G5 L- ; Do not log repeated messages. Repeated errors must occur in same file on same( e! `; |/ s e: D; J4 {
- ; line unless ignore_repeated_source is set true.) t% M/ `2 B% h
- ; http://php.net/ignore-repeated-errors* I( r; }0 o2 d- E6 F2 g* s" n, P; I5 b
- ignore_repeated_errors = Off n3 f5 Z2 e1 r; M! {
# B1 o9 e! v: d4 E- ; Ignore source of message when ignoring repeated messages. When this setting3 H; p! \1 V1 y* l3 {
- ; is On you will not log errors with repeated messages from different files or
0 v6 r" Z- h% m - ; source lines.
& S6 e+ u0 P4 G; ^ - ; http://php.net/ignore-repeated-source
# u( [ R5 r% h3 a: y/ v+ ?* Q - ignore_repeated_source = Off
) o1 T5 |4 y4 A7 G" B - ! T) K+ W' u( B
- ; If this parameter is set to Off, then memory leaks will not be shown (on: J; e2 i0 v( j; |' U
- ; stdout or in the log). This has only effect in a debug compile, and if
N" x0 A" J( l [ p - ; error reporting includes E_WARNING in the allowed list
8 X! q& i* y7 m9 b; e" H/ m - ; http://php.net/report-memleaks) O$ }( k5 q( U, U, F! z! o- {' V8 Z
- report_memleaks = On
( b8 L# s# K% l% K/ R! a' b* c - 0 n$ K8 X. }2 E" c! j7 }# b
- ; This setting is on by default.4 Y0 A- g/ p' E* q
- ;report_zend_debug = 0
; \! u0 y9 \+ t5 j( z/ ] - 5 h+ \" Y8 [, a6 u. z& q
- ; Store the last error/warning message in $php_errormsg (boolean). Setting this value
3 b6 ]9 j& ?& D2 p - ; to On can assist in debugging and is appropriate for development servers. It should
4 }) o( A6 V+ a - ; however be disabled on production servers.
6 {( }( ?1 L' @: R - ; Default Value: Off
. i0 K9 e ?* n0 _/ I/ |. H - ; Development Value: On
* d' P7 ^6 u1 ? - ; Production Value: Off
+ t- e& B6 v" r8 k - ; http://php.net/track-errors
: X' Y% p& M) M, j& t - track_errors = Off
- O, k! a" y) Y' V* J
+ f8 D0 @) x) ^1 P8 v4 |6 G# d9 g- ; Turn off normal error reporting and emit XML-RPC error XML
( U9 l5 V0 W5 T7 e5 t - ; http://php.net/xmlrpc-errors9 @. i5 d" }+ ^. {
- ;xmlrpc_errors = 0
0 S ^9 `3 F6 i- [# l
! e2 Z0 Q6 i/ l I- ; An XML-RPC faultCode
5 k/ l6 d' ^, x2 ]) C! C - ;xmlrpc_error_number = 0
; a9 e' |% d: ^* A1 r U2 V+ M) @
$ C+ v) @3 n0 u' X5 ^- Z5 Z3 ]- ; When PHP displays or logs an error, it has the capability of formatting the
; k' R) o- _3 ? - ; error message as HTML for easier reading. This directive controls whether+ y( N- x. ~; K. p0 M$ ^4 R
- ; the error message is formatted as HTML or not.
$ }6 d) \' S" k: p& h- p - ; Note: This directive is hardcoded to Off for the CLI SAPI
! k% n) g7 b) F# ~9 m# S* A' K2 e" {. [ - ; Default Value: On
4 c$ o) q. u8 n; H - ; Development Value: On( c' L0 e' E/ a- ?2 l3 n Y
- ; Production value: On" f' w, h4 h/ w+ |+ f
- ; http://php.net/html-errors9 [. ?0 O i5 r4 l% m7 p0 L$ N
- html_errors = On
' W! x9 }' m3 I! Q- T4 ?
) ]/ l( b+ H" L, N1 Z- ; If html_errors is set to On *and* docref_root is not empty, then PHP
1 ]( q. O3 ?# ~) P - ; produces clickable error messages that direct to a page describing the error' K5 |( Q! H& D& Y5 ^
- ; or function causing the error in detail.! w/ k5 i$ z1 [8 Z
- ; You can download a copy of the PHP manual from http://php.net/docs
) ^! C0 U( K# S5 r/ a - ; and change docref_root to the base URL of your local copy including the
$ j# r4 M) @8 v/ ~ - ; leading '/'. You must also specify the file extension being used including, k7 s- c; m0 @7 h. @5 E: y
- ; the dot. PHP's default behavior is to leave these settings empty, in which
. l A- J# E, _# k - ; case no links to documentation are generated.8 X" |& j+ N/ W
- ; Note: Never use this feature for production boxes.
1 j/ |- } w% c: v* { - ; http://php.net/docref-root3 H6 w! L% d) ~( y. V9 J% d! V& O1 |
- ; Examples
% i( q5 D, M* {+ H: y( D* a* G - ;docref_root = "/phpmanual/"6 p: U- l. E# ?* \* O( O
Y8 P$ Y5 {+ K- ; http://php.net/docref-ext
O6 o: @! m# W1 ]2 [% T. J! l, b - ;docref_ext = .html* Z1 H, B+ I( M. y% | {
! C" T' b) Z/ l! o5 t- ; String to output before an error message. PHP's default behavior is to leave3 F7 {: i @2 a" M7 j
- ; this setting blank.
( v9 a- d0 h( o6 s& U - ; http://php.net/error-prepend-string
: y% ?5 ]4 `2 _8 p) A5 z/ ?8 Q. g - ; Example:
3 V9 }3 Q f" f' e9 A - ;error_prepend_string = "<span style='color: #ff0000'>"
7 u" |8 ]+ q: w+ B* ` - ' H4 a* A! Q, K/ G2 C, e- E; N. G( ?
- ; String to output after an error message. PHP's default behavior is to leave D* A, \1 M. J5 D8 F
- ; this setting blank.
* z7 |9 n* f" y( ]8 A, n9 u - ; http://php.net/error-append-string" {. O( M8 {2 |" i1 o
- ; Example:
7 ^) _1 g0 z4 y+ O' g - ;error_append_string = "</span>"
' ?( }% K) P& O7 u5 g# U9 l+ i% ^
% Q8 S* O+ P" I- ; Log errors to specified file. PHP's default behavior is to leave this value6 x4 ~6 S/ k: A8 f( Q6 v1 F n
- ; empty.
0 Z" W2 c( z F) H - ; http://php.net/error-log
; {* s; B$ i; L, Y5 o7 \ - ; Example:8 [1 L4 m4 E! r6 ]3 t. b
- ;error_log = php_errors.log" @+ R- w6 Z }$ F
- ; Log errors to syslog (Event Log on Windows).0 a9 _" i+ ]7 \+ o* j6 t7 Q
- ;error_log = syslog# p. Z: [9 }! M. x4 [& ? a* I! n& s( Y
- 4 h$ N2 V: Y* [, s" R$ B
- ;windows.show_crt_warning
! K B; i8 ]$ W8 h" U - ; Default value: 0
: Z, K% a6 n I9 p - ; Development value: 00 e8 e7 J. s: V% v% ^
- ; Production value: 0# S) E( ]% j3 x9 [( J( `3 `
- ]- K4 |! J7 }$ \
- ;;;;;;;;;;;;;;;;;; Y5 x0 J6 q$ R. u' Y9 k Z0 h% ^" E
- ; Data Handling ;+ y: {3 h" n3 l2 X* i* f% h% H
- ;;;;;;;;;;;;;;;;;
& F, O& R+ H7 p2 J7 g8 K' H
1 W7 k& t: T- n$ [) s \- ; The separator used in PHP generated URLs to separate arguments.
t2 e) l1 M' r6 Y2 r1 W - ; PHP's default setting is "&".
# o, ?" ]' [ Z: M( i+ f! T6 J - ; http://php.net/arg-separator.output+ D t' |" w2 Z& t+ G* W" V- Y {
- ; Example:
# b3 S- a1 C' ]$ j2 S% ]! N1 J7 [! \ - ;arg_separator.output = "&"4 k, b2 [1 C$ E+ b" P" r2 y
- 7 K e; u3 G7 y! E, Q4 D- ~
- ; List of separator(s) used by PHP to parse input URLs into variables.$ s/ B. m* |% w2 o/ `
- ; PHP's default setting is "&"." P1 S% b& L. c) \3 P% g
- ; NOTE: Every character in this directive is considered as separator!
* w. |. U6 F Q& o; J: ^ - ; http://php.net/arg-separator.input) l" o: v9 B' o @9 o
- ; Example:- M# \) p. g& r- d# K- l4 g
- ;arg_separator.input = ";&"
6 f2 @2 p4 @8 ]: J- G, h - + u* q4 K1 L8 m8 [' z- y) u
- ; This directive determines which super global arrays are registered when PHP
8 K! f# `4 z' m9 b" v - ; starts up. G,P,C,E & S are abbreviations for the following respective super
3 w: K* [7 S! a - ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
f* T- R8 x7 A2 K1 @% T% Y7 U - ; paid for the registration of these arrays and because ENV is not as commonly
" \9 j' K5 U3 z - ; used as the others, ENV is not recommended on productions servers. You7 t: K% t. p! f8 c
- ; can still get access to the environment variables through getenv() should you; \+ J3 Y6 Z) X- u8 g2 o
- ; need to.
# K- }. |2 B* ?) e2 W - ; Default Value: "EGPCS"! K: _0 j) F' G% s, Q: J4 Z0 r) H
- ; Development Value: "GPCS" \1 H6 m# C8 _0 t
- ; Production Value: "GPCS";
. B7 s4 `' U# b, s! r - ; http://php.net/variables-order
. }& V0 C( A2 J) a! v1 h% e9 t - variables_order = "GPCS"! h8 r& l- Q! r- D
2 ~6 i% d; L4 K7 _$ s" \' Y y- ; This directive determines which super global data (G,P & C) should be
0 z( a6 `( q! y4 g - ; registered into the super global array REQUEST. If so, it also determines
9 R7 I6 E9 s+ g6 e3 O- b( e - ; the order in which that data is registered. The values for this directive. e+ A6 O2 E& n+ i. `# i1 \0 M7 M# C
- ; are specified in the same manner as the variables_order directive,0 m1 }) H! m9 w2 [
- ; EXCEPT one. Leaving this value empty will cause PHP to use the value set, O' \/ E% h, a6 a
- ; in the variables_order directive. It does not mean it will leave the super9 Z9 C1 Z; x% B0 L1 D$ a
- ; globals array REQUEST empty.9 m: o1 w* Y4 k$ I& ^( F7 S
- ; Default Value: None
( G5 M7 w0 g& ` - ; Development Value: "GP"6 g+ E+ W6 P+ Z( q: V) W
- ; Production Value: "GP"0 Z" t% \" J+ O" h
- ; http://php.net/request-order
- R; z- n# U+ P& p5 |4 a - request_order = "GP") \# | a F+ p4 [$ f
- " T S5 U7 c. H: f$ ?, K
- ; This directive determines whether PHP registers $argv & $argc each time it
; i0 N B) J& N# o7 S* g+ o - ; runs. $argv contains an array of all the arguments passed to PHP when a script
; @& J, r8 E9 ~% p( z: w* } - ; is invoked. $argc contains an integer representing the number of arguments
' |' H0 T; _) t0 o L/ x2 K - ; that were passed when the script was invoked. These arrays are extremely0 Z5 b" y$ I' O4 Z; H
- ; useful when running scripts from the command line. When this directive is8 g1 t/ T* s! A, h
- ; enabled, registering these variables consumes CPU cycles and memory each time6 ~+ z8 U. Y7 C& P& e
- ; a script is executed. For performance reasons, this feature should be disabled. I$ r# }# X! I ^, Y9 |
- ; on production servers.4 A3 R2 b, l/ a/ A
- ; Note: This directive is hardcoded to On for the CLI SAPI
6 ?9 w& G( P# Q$ r7 [. W Z/ S0 { - ; Default Value: On( w0 |$ o/ l' [& [1 G( C( N
- ; Development Value: Off* M$ `8 \+ e' g, V
- ; Production Value: Off0 `, x- q6 B; l$ z7 Q$ q, E9 `
- ; http://php.net/register-argc-argv
/ `+ U/ ]7 K' |; w+ ^3 L - register_argc_argv = Off2 \+ o6 s9 i7 q- a% r
- , x" h, B4 R9 z
- ; When enabled, the ENV, REQUEST and SERVER variables are created when they're
/ p- ], p# j' ]' N# P - ; first used (Just In Time) instead of when the script starts. If these2 j8 v8 n. E ]! q
- ; variables are not used within a script, having this directive on will result
9 h& e- R+ I( ^2 C% `: ^ - ; in a performance gain. The PHP directive register_argc_argv must be disabled
; `$ E; t: t8 | - ; for this directive to have any affect.7 K; Y! \) j, j+ U6 o3 i* T) o$ F
- ; http://php.net/auto-globals-jit0 Z n; l* l. B' Z1 q* b; Z
- auto_globals_jit = On
3 {% ]8 _6 }; A) H+ P) z - : M8 B7 V7 I) M2 ?
- ; Whether PHP will read the POST data.
$ x! C9 U* \: y; M! G4 M7 c - ; This option is enabled by default.' J% K, U! M2 R- z4 Q
- ; Most likely, you won't want to disable this option globally. It causes $_POST
0 {& N4 C$ Q" z2 U: Q0 W. L - ; and $_FILES to always be empty; the only way you will be able to read the
" s9 e4 L' d7 f/ i/ t+ t) r - ; POST data will be through the php://input stream wrapper. This can be useful& f; P2 h8 B, v, q5 Y+ W0 @7 j6 S: j. ~' P
- ; to proxy requests or to process the POST data in a memory efficient fashion./ P; h( `, D+ ]. }+ e
- ; http://php.net/enable-post-data-reading
+ g8 M6 k: J, D6 R e0 C( { - ;enable_post_data_reading = Off
- W6 V. H) p8 n6 k {' a
6 ~1 R6 c7 z- g9 b# B9 `- ; Maximum size of POST data that PHP will accept.
2 B! a r7 ]0 L& E - ; Its value may be 0 to disable the limit. It is ignored if POST data reading
, H7 `( E4 v% F! v- A$ I- S6 x - ; is disabled through enable_post_data_reading.4 w5 G& I( n m; J$ g5 K
- ; http://php.net/post-max-size9 |4 s* z, O" o& f! {: t7 |
- post_max_size = 50M
7 M) l8 F0 f1 `# O! m
; d) D( u L0 J; r' b/ r- ; Automatically add files before PHP document.1 e. ?' \4 P( i) X
- ; http://php.net/auto-prepend-file, ?; H" w' ]' w: A# l& H
- auto_prepend_file =% m; o9 r- B: V
1 u0 Z- e& M' y7 T0 s! q& v- ; Automatically add files after PHP document.) K1 c# c. U/ l/ j8 D
- ; http://php.net/auto-append-file
; C G0 f, U! B$ G5 s1 F: B - auto_append_file =
. r) T& Y) w; h: M* K
L/ Y# q* T- E# E, r$ n7 x: z- ; By default, PHP will output a media type using the Content-Type header. To2 G: O, w1 H5 S6 O& ^
- ; disable this, simply set it to be empty.' L* {9 a" n" q" h( p* U
- ;
9 f( I' e' f8 O - ; PHP's built-in default media type is set to text/html.
+ ?- D( x5 S2 s! A3 s x8 o - ; http://php.net/default-mimetype
$ }+ U' X% R* G( C/ b - default_mimetype = "text/html"
' U4 _% K0 l) Y. ]' @
$ `( W) O- s3 T2 b- ; PHP's default character set is set to UTF-8.' M) h# U7 T; A' V' B2 [- P
- ; http://php.net/default-charset
/ t( A% F& ^, ~/ |2 K# [: ~; b- z - default_charset = "UTF-8"" {8 f; y) G2 ~
9 I6 M- U0 F4 P. H2 V- ; PHP internal character encoding is set to empty.; r7 F5 ?5 G1 e) d
- ; If empty, default_charset is used.
: p& m: f0 X7 ^- q' J - ; http://php.net/internal-encoding
: p! |1 K1 o9 D4 l: S& m% s - ;internal_encoding =) p# G( i6 }, o: L9 G+ c/ z
4 q+ }- \1 J6 p8 r* L" C9 c- ; PHP input character encoding is set to empty.
+ j5 {7 U [1 U7 U8 D: k - ; If empty, default_charset is used.
) x' `! j" ~9 c1 @# \5 u - ; http://php.net/input-encoding/ V9 O0 h+ W2 U
- ;input_encoding =" S6 x9 q; F8 W) C0 O
9 n3 E, T0 _, E* X' _: N* f) E- ; PHP output character encoding is set to empty.
& V1 J6 ~3 a+ M! \6 _9 t - ; If empty, default_charset is used.* Z; W. p, M( B. K
- ; See also output_buffer.3 D; v+ \% e- u7 ?- h
- ; http://php.net/output-encoding
6 d9 y' ^& e$ f" `) u- C) R- B - ;output_encoding =
1 O" j7 o( ]3 M2 p. M" f# ~
' k+ o8 B R* o9 y- ;;;;;;;;;;;;;;;;;;;;;;;;;
1 S" u9 {- C: U) s1 z! n/ k - ; Paths and Directories ;! I4 a c _3 i6 q# E* {2 u7 n% Z3 B
- ;;;;;;;;;;;;;;;;;;;;;;;;;
3 P7 f7 }/ V4 l; }1 _7 y- M - & V1 Q4 ^4 S7 U# A
- ; UNIX: "/path1:/path2"$ C) B; M- w. V7 q/ R( R6 I ^4 G
- ;include_path = ".:/php/includes"
# v4 p! ?7 a8 ?; ~" y - ;
9 y4 X Q$ m% I0 } - ; Windows: "\path1;\path2"/ O+ _- M+ c8 z- B
- ;include_path = ".;c:\php\includes"
{/ X( |4 w5 H! P - ;
# ?: Q" {, K+ y& h- W/ f% Z - ; PHP's default setting for include_path is ".;/path/to/php/pear"# ]7 B9 u" `. C6 q9 b
- ; http://php.net/include-path
/ C Q8 h7 ]5 {' U1 v5 A+ y% n
. }5 B m' D. V% a* H- ; The root of the PHP pages, used only if nonempty./ K% u6 V: `& Q
- ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
/ S1 M+ ~6 ?; A - ; if you are running php as a CGI under any web server (other than IIS)
/ ]1 U" V7 N+ T9 ` - ; see documentation for security issues. The alternate is to use the7 u h. }: v4 v, B
- ; cgi.force_redirect configuration below
% a5 k( s. I. P. r2 ~2 F5 J - ; http://php.net/doc-root
' u, R( p& W2 N. V4 J - doc_root =
6 }' @; M- r$ j; ?; X) |
/ e0 B. ]3 k. O# d0 j- ; The directory under which PHP opens the script using /~username used only
, W; l; b( G ]0 f+ S - ; if nonempty.
3 p0 E% z* e+ d: x5 v3 K7 z - ; http://php.net/user-dir& V$ |- M) i. {& `! G9 `8 z; q
- user_dir =
) F X# M" c3 h. z
' z4 }) M3 [ C D. P- ; Directory in which the loadable extensions (modules) reside.
( d( E W0 e% W3 z N6 p$ h- H6 u' C - ; http://php.net/extension-dir% m* n! s' O( o8 Q
- ; extension_dir = "./") ]/ T) W' a2 d7 W1 L3 w8 z
- ; On windows:
; \0 W' C ^+ u/ U9 p - ; extension_dir = "ext"
: L4 W' Z, |! D5 y - 7 h" e* J3 e% O" e( ?
- ; Directory where the temporary files should be placed.
7 R" Q+ N# W/ [. [' X2 b3 F, f - ; Defaults to the system default (see sys_get_temp_dir)
l6 K5 k5 z2 H4 [ - ; sys_temp_dir = "/tmp"
' @% _1 J0 l+ _( D1 p
8 E* C6 L1 T5 o5 {" V- ; Whether or not to enable the dl() function. The dl() function does NOT work/ g A. C& ?2 c% ]3 M: J
- ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
: U. ] Z. f: v$ S - ; disabled on them.
' H! b* |" Q6 S' B - ; http://php.net/enable-dl
$ V$ g+ ^& f1 G5 `# v$ Z - enable_dl = Off
3 ^5 l( X0 y7 o$ L% ? - ( @/ D3 c: H: `( j) d% W$ L
- ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
* i b& j" B& [6 Q8 B - ; most web servers. Left undefined, PHP turns this on by default. You can, F" J$ {8 x2 N' G, D3 i
- ; turn it off here AT YOUR OWN RISK
! v6 A! g6 y/ h' \; q - ; **You CAN safely turn this off for IIS, in fact, you MUST.**
4 I8 |" B, O- I9 d+ Z - ; http://php.net/cgi.force-redirect" W- O1 B: b# _, h+ ~" ]# w
- ;cgi.force_redirect = 1! ?$ [9 j0 {( s$ y, k" j! H
- ) }$ m' G0 c' ~3 E4 \, W1 z
- ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with$ l7 t: y; D- M+ f$ b
- ; every request. PHP's default behavior is to disable this feature.
F' V; i* u6 v3 P1 ~' `+ B& K/ S I - ;cgi.nph = 1, @5 V0 v: ]( ~ O" A
3 B& `$ u% D) U# P# ]% {7 J( ~( C- ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
5 N4 x- a/ T" ]8 W - ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
6 U# x) S9 [8 |0 ^5 T6 ~% s. | - ; will look for to know it is OK to continue execution. Setting this variable MAY
: w& I2 C7 ^- A" J% a" ^/ e - ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
4 [- ?* a: R4 @6 d* n# o - ; http://php.net/cgi.redirect-status-env
0 S6 S+ P0 G! ^' H/ i0 S# Y - ;cgi.redirect_status_env =* C( z. [ O$ A# J9 k+ J
- 7 s B y; _) W. Z; g5 d
- ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
* {0 B; [* p( S& V - ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok* B- j, W& q8 @* K
- ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting6 O4 O* ^- p0 h) o- s4 X
- ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
, J2 J4 ^6 D, Y, G- [ - ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts0 Y/ Z) m' [! Z) H, R' f; V9 n; Z- b
- ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.9 Q( O ^. f( }1 `
- ; http://php.net/cgi.fix-pathinfo+ G! E! A {* v9 V4 D
- cgi.fix_pathinfo=1
; [& d0 ]" w" O! R, ^ - 8 O0 Q6 `8 m4 t( |2 E ]
- ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside6 l8 ?/ e1 d" r# C; @ k) d7 [6 D
- ; of the web tree and people will not be able to circumvent .htaccess security.
2 \1 B* T& D3 ]6 I8 Q$ D4 H3 ^1 A - ; http://php.net/cgi.dicard-path
5 `/ r0 L5 V, b. }9 ]- W1 c - ;cgi.discard_path=1% Z2 O" N' `( t/ g3 R
- ?, a- D, N( }( j& E8 X$ X- ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
/ m; K* h% M. f1 O$ E" e& a - ; security tokens of the calling client. This allows IIS to define the
# j M& Y6 A4 Y/ g8 d' `1 g" Y { - ; security context that the request runs under. mod_fastcgi under Apache) f! h5 w0 A- ^" Y, j
- ; does not currently support this feature (03/17/2002)/ p# c" g: Y* ~0 d. R- P, x. D6 Y
- ; Set to 1 if running under IIS. Default is zero.4 l( M. @2 {) S$ \, {# r
- ; http://php.net/fastcgi.impersonate
+ W2 g; t+ j+ e - ;fastcgi.impersonate = 1! e/ _/ g" J* m: f- M M
^/ ]/ _" m: j1 T ]7 g \1 }- ; Disable logging through FastCGI connection. PHP's default behavior is to enable
- q2 P e4 M/ V - ; this feature., Q, D/ @: Q9 C/ ~8 d6 y# N
- ;fastcgi.logging = 0
6 f8 _2 n( a( X" @4 H. V9 u
. m/ }" W+ ]5 y, `7 e- ; cgi.rfc2616_headers configuration option tells PHP what type of headers to
D% B2 P; E; `; r& W - ; use when sending HTTP response code. If set to 0, PHP sends Status: header that8 }4 S/ [4 D1 X7 p X$ p0 f& t
- ; is supported by Apache. When this option is set to 1, PHP will send
' x5 p1 e. T1 ~; G - ; RFC2616 compliant header.4 F# _$ B/ p# F4 A8 i
- ; Default is zero.# U3 T& r" n) o7 ~6 l2 w
- ; http://php.net/cgi.rfc2616-headers
) V$ S- B" M2 Y" ]+ o$ X: T% t - ;cgi.rfc2616_headers = 0
8 x9 Y, ?7 V1 U- y: c( y
$ B! f. N0 @+ ^0 Y: V: K! ]- ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!- ^0 E+ s$ t( V0 e, M' W5 L
- ; (shebang) at the top of the running script. This line might be needed if the
1 H! g# g9 E5 [8 I0 C - ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI
3 b& q, e' F# D) F# t4 t4 J - ; mode skips this line and ignores its content if this directive is turned on.6 M4 I6 y" D& O1 Y; F
- ; http://php.net/cgi.check-shebang-line
2 h) {$ G8 B3 L" Q! u* S y - ;cgi.check_shebang_line=1; U& e% ^8 C- D* D. i& l& S o0 ^
- % ^" S$ n1 b1 i- E
- ;;;;;;;;;;;;;;;;
- E; u0 [( h! p" G/ w% f( q- | - ; File Uploads ;9 m& r5 \) a7 c& z8 G% M/ F
- ;;;;;;;;;;;;;;;;9 j n8 l2 l1 J% K& Z+ U D* u; y
7 ~ A" r! \2 ]3 ]" |+ u- ; Whether to allow HTTP file uploads.
, p' b5 s6 @8 q# _; e - ; http://php.net/file-uploads
' l1 G5 Y& z. V( |% B+ A$ o - file_uploads = On
' j3 F! \! j' w9 i - : |; j$ Z5 Q& ^ a9 R$ z5 Y7 I
- ; Temporary directory for HTTP uploaded files (will use system default if not2 n1 M& \ \ J' g% b
- ; specified).
! ]1 u% M1 b$ x7 n G - ; http://php.net/upload-tmp-dir: ]7 Y5 j; K( j, x5 W& G5 C
- ;upload_tmp_dir =
; |) X- H7 Z% o/ w. C: a* p$ l- _6 B - z4 q, M" ] K" }: o
- ; Maximum allowed size for uploaded files.0 l# l H( j# h/ X
- ; http://php.net/upload-max-filesize
9 h! L. T6 ]% R - upload_max_filesize = 50M
" `2 w, }, ~9 N1 D5 _ l- \
' I0 s5 ^/ N: ^$ v; W3 A- ; Maximum number of files that can be uploaded via a single request6 p2 T2 g/ ?; V! k& t
- max_file_uploads = 20" x D5 ~" \1 H+ J$ f% g' ^
. c6 s5 \+ j3 e6 e7 V4 p- ;;;;;;;;;;;;;;;;;;
2 E: E0 ~8 D; x0 O2 b+ w* P - ; Fopen wrappers ;
( |" M$ O3 ^- Z& d- \* C9 V - ;;;;;;;;;;;;;;;;;;% ~! e* w( U8 a9 ^( q
- ~2 `& W! T0 d' z6 N- ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.8 ~2 h: j3 _- h0 n( N
- ; http://php.net/allow-url-fopen
: p( j% F9 }. {, i3 R - allow_url_fopen = On
6 H* c4 }% `4 Y. }6 ] - # x6 N9 `) N3 h8 J( }; ~
- ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
. J/ V1 K5 |3 r. A$ a - ; http://php.net/allow-url-include* V) W6 l- @0 p( b
- allow_url_include = Off
# k5 D* ` f9 h; m8 J) o2 r9 @" s0 G; k - 6 A6 X, N! ]( |) b
- ; Define the anonymous ftp password (your email address). PHP's default setting
$ ]/ j, \$ N q - ; for this is empty.) Y& X' W; ` S7 U! E
- ; http://php.net/from
3 T+ J2 { _3 l( K; p+ \6 P - ;from="john@doe.com"
1 k5 d$ r% k5 V8 M2 V: i9 \ - ; I' R, Q: \1 o4 d$ V7 D( R
- ; Define the User-Agent string. PHP's default setting for this is empty.
; A& q& F: G; S - ; http://php.net/user-agent
4 H* w% K' J, p0 j - ;user_agent="PHP"7 B( T |& k6 i q1 s- `# ?' k
- & U' d4 I3 a: L' Z" G+ E1 v
- ; Default timeout for socket based streams (seconds)! T8 ]2 R6 n( e, e
- ; http://php.net/default-socket-timeout
3 g( y0 \0 M2 W$ c$ M; c, n2 M - default_socket_timeout = 60* \4 X V6 p7 |. b# s( t% ~
- $ A- J6 \4 q* M& @' u5 c
- ; If your scripts have to deal with files from Macintosh systems,
# F" p! W4 q3 s$ h - ; or you are running on a Mac and need to deal with files from
6 a% i5 f+ y3 x3 k - ; unix or win32 systems, setting this flag will cause PHP to
+ P8 g% ~- U. M0 _) G8 S$ ^ - ; automatically detect the EOL character in those files so that
; K/ q Y5 h' r- Y9 p - ; fgets() and file() will work regardless of the source of the file.+ u z- F, q1 f* M
- ; http://php.net/auto-detect-line-endings
; m1 D- y% z- o6 A( n - ;auto_detect_line_endings = Off
r: i( r2 E. A! m" S9 b9 E - ( a9 s6 \: P, D T1 c! S4 b
- ;;;;;;;;;;;;;;;;;;;;;;1 z( G' K, J' t, f+ O: G" {, C
- ; Dynamic Extensions ;& J9 {# D0 l2 _/ }4 I2 }" V
- ;;;;;;;;;;;;;;;;;;;;;;
U5 W; J8 f4 O/ h2 c- i7 x% } - ! p X7 [/ x! a, K) v) j7 [
- ; If you wish to have an extension loaded automatically, use the following9 U7 ?! K- J+ n m0 F$ f
- ; syntax:
# L+ q: D2 U! `0 r- \0 { I - ;9 k/ k+ f. y, N0 B* Q) V
- ; extension=modulename.extension$ E- b) u( l+ n5 ?" f
- ;
' M! j ~. `# z3 R3 W: X - ; For example, on Windows:7 B) x p+ |8 X9 v) ]) e% U
- ;
0 X' L! C, c4 h2 B - ; extension=msql.dll9 C, c& Z- j% v7 M
- ;
9 n: }( @. x# j; k, i' m& s7 ] - ; ... or under UNIX:
x8 T% M! j2 C - ;
8 h) |8 G- Z: `3 | - ; extension=msql.so
% ^' J% ^7 u- `, w( ^- y) I1 _ - ;
+ _* T6 I- E. L( h - ; ... or with a path:& K$ q" {# {3 [ k2 P
- ;) U; X6 e) M6 m% X
- ; extension=/path/to/extension/msql.so
& d+ ?& C* D# P' ] - ;8 L* r/ Y/ d+ l" K9 h% `0 q3 Z
- ; If you only provide the name of the extension, PHP will look for it in its
) m) \0 P" a( X' S7 P - ; default extension directory.
# D8 J+ H% a* q, n$ C1 A4 `$ H - ;
, z* o9 Z6 B; e) {1 K! W - ; Windows Extensions% w, J4 O4 d' V5 P8 E6 s/ c
- ; Note that ODBC support is built in, so no dll is needed for it.: a' c1 B( |( j+ b% L
- ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+), p6 U5 w. s0 d2 q) h1 ^% [2 N0 m) M% m6 ^
- ; extension folders as well as the separate PECL DLL download (PHP 5+).; L7 N: B9 q) x' N2 D* I( Q
- ; Be sure to appropriately set the extension_dir directive.
0 \% a# V; |; l( A% O% D - ;
( h! c8 M) h) R/ Z - ;extension=php_bz2.dll( W. G+ Q( F$ M5 }& g& i, P+ y
- ;extension=php_curl.dll2 ^8 o! ?3 l5 t3 u7 E8 J* j: d$ ^, L
- ;extension=php_fileinfo.dll) n& W. y7 z- P' b! [. C9 x
- ;extension=php_ftp.dll4 n' b7 y E) \' g
- ;extension=php_gd2.dll/ r. T' r) M! h0 [. A! x
- ;extension=php_gettext.dll' f* \* ^" L& o( x- S# }; K
- ;extension=php_gmp.dll, g5 r/ w) |; i5 T
- ;extension=php_intl.dll2 Q( n" S: A6 L. |7 n1 e% n3 t3 b
- ;extension=php_imap.dll$ E1 K1 R9 @1 p
- ;extension=php_interbase.dll
& G5 S+ f6 e: z& z% t( I8 y; p8 h - ;extension=php_ldap.dll x8 M: `" p& l: x
- ;extension=php_mbstring.dll
. d# @8 U$ o9 i - ;extension=php_exif.dll ; Must be after mbstring as it depends on it8 ^) z) X5 t7 `; M2 p+ A2 ^$ h6 V/ f
- ;extension=php_mysqli.dll3 G4 U/ Y3 ^$ n" |% B4 p" f: a
- ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client! i9 @' h T U1 z# N
- ;extension=php_openssl.dll3 a) m6 U# w R) I
- ;extension=php_pdo_firebird.dll
7 y( R/ u. c8 x7 P+ o) w, K# M - ;extension=php_pdo_mysql.dll
6 O+ O% V: X! u/ v0 r: x - ;extension=php_pdo_oci.dll
6 M4 s0 A2 D" T - ;extension=php_pdo_odbc.dll
( |5 T/ |" ?5 O! l* E - ;extension=php_pdo_pgsql.dll
5 Z* l/ _" w3 e. m9 d - ;extension=php_pdo_sqlite.dll
5 b+ N" `% T q2 ?/ B7 ]5 U. j - ;extension=php_pgsql.dll. s3 }% h; z0 I) [
- ;extension=php_shmop.dll
) U9 y% B3 p- \+ [0 _/ a: k- u - 7 j/ |+ I: U+ t6 o9 K
- ; The MIBS data available in the PHP distribution must be installed.
5 N W( s# Y. q# ?/ }( A6 O6 E$ A - ; See http://www.php.net/manual/en/snmp.installation.php
/ W0 v p2 V3 a5 m, K - ;extension=php_snmp.dll$ W1 c6 C" ?( e) U0 P
7 T3 b8 A) h L6 C- ;extension=php_soap.dll, |7 C ^8 W8 C0 Y6 N: i
- ;extension=php_sockets.dll% u6 ~ c- J A% n4 [7 T
- ;extension=php_sqlite3.dll! m, K5 ?! @6 Y
- ;extension=php_tidy.dll8 W2 o( W- _1 g# E: d1 H8 B" m
- ;extension=php_xmlrpc.dll
A. I8 o3 w$ a - ;extension=php_xsl.dll
7 C" S9 R' ?- j - 3 Q5 ?3 D; ]7 H) N% t8 p# Y( s
- ;;;;;;;;;;;;;;;;;;;
. ]$ `: N) G0 Q; N - ; Module Settings ;
0 Q; B/ Q$ T1 ^1 P f - ;;;;;;;;;;;;;;;;;;;( t9 g8 ?5 K$ W
- 7 ?3 t. {. Y. q% u8 n
- [CLI Server]; o, h. J( i0 @6 P1 \
- ; Whether the CLI web server uses ANSI color coding in its terminal output.
9 W. ?8 Y4 f! @& A1 g+ F5 W - cli_server.color = On
# d/ d! K" w$ S) t$ D - 3 F- W3 Q2 L4 o# E8 }9 C3 q
- [Date]
+ }+ L! V0 o/ X, l$ M, j6 t* L - ; Defines the default timezone used by the date functions# k3 { r6 c+ ]4 N
- ; http://php.net/date.timezone
9 @$ ?# b+ z, y7 k+ x - date.timezone = PRC
) n) H: ], v( s8 P- b& B: [
& W' c( Q4 O. k5 o5 ?- ; http://php.net/date.default-latitude0 R) c3 u& r/ Q: _4 ?
- ;date.default_latitude = 31.7667
, e' |5 n+ X6 f
1 A2 J- |2 {/ e& v- ; http://php.net/date.default-longitude
9 v+ b* C% O7 N4 w4 a - ;date.default_longitude = 35.2333
( \' e2 A+ J0 w& I5 [9 ?7 S' I0 C& F' c
* m7 v, ~7 J5 g# i" @- ; http://php.net/date.sunrise-zenith
' A% P9 ^: b# j$ ?! I3 `7 z - ;date.sunrise_zenith = 90.583333
Y8 b! `$ N @' L - : j! G. I) q* e6 S& S v9 V
- ; http://php.net/date.sunset-zenith
: y5 X+ z$ @2 ] e. G, P - ;date.sunset_zenith = 90.583333
: z9 g) a& V% ?$ v3 X1 x0 V - - h* `1 f2 O# A: ?$ B
- [filter]
1 [; |* r9 I8 J9 ~0 Y/ A& R3 v - ; http://php.net/filter.default; W+ v" ^ L( x, K! K
- ;filter.default = unsafe_raw
( R, F% ?* _0 }4 x8 K - ' C1 w9 H7 ~% z8 A
- ; http://php.net/filter.default-flags# I0 v( v; k& b5 S/ x; h
- ;filter.default_flags =
" v) d& ]7 `8 P8 U - ' S2 h: e4 y" x7 v2 N
- [iconv]: m# k# |+ {7 u2 `5 e
- ; Use of this INI entry is deprecated, use global input_encoding instead.( E5 u, q0 `! w4 K4 z) i
- ; If empty, default_charset or input_encoding or iconv.input_encoding is used.
9 ]4 W8 `, X* ?" X6 g J6 P - ; The precedence is: default_charset < intput_encoding < iconv.input_encoding. t- k5 e# z6 W: J8 N1 a
- ;iconv.input_encoding =
! r' u! G V1 o3 R. P" l' r
+ Y- p, z1 r/ j: z8 C& u- ; Use of this INI entry is deprecated, use global internal_encoding instead.
" i5 R/ D8 a& S0 j% c8 f& u' ~ - ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.+ q% u* e# A4 z/ e, E$ m
- ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
' m- k. s: P4 S, y/ @* A) p - ;iconv.internal_encoding =
5 ?1 B2 O7 `5 i) D - * z" D) }/ k$ ]. n& ?& c
- ; Use of this INI entry is deprecated, use global output_encoding instead.8 L4 g, d; N- l. v
- ; If empty, default_charset or output_encoding or iconv.output_encoding is used." i( v0 X; O. A& t# |* E
- ; The precedence is: default_charset < output_encoding < iconv.output_encoding
, J K! _5 H( q - ; To use an output encoding conversion, iconv's output handler must be set
2 {! u' Z4 L4 U' i0 E8 r - ; otherwise output encoding conversion cannot be performed.+ O% N& `9 {. Z
- ;iconv.output_encoding =
' }# ]8 u4 z. B0 }( \- g - 7 U' }* K0 \% f+ v0 @
- [intl]$ `7 \0 X$ Q$ t. w
- ;intl.default_locale =0 Y2 R3 J3 T$ }3 G
- ; This directive allows you to produce PHP errors when some error
5 ?3 e: L2 b2 B& H& J - ; happens within intl functions. The value is the level of the error produced.
) Y1 m! M5 h: F: [ - ; Default is 0, which does not produce any errors.% h- a+ Z) u) a; \8 F9 I7 b* k
- ;intl.error_level = E_WARNING; ]/ |7 e% K3 x6 u$ `
- ;intl.use_exceptions = 07 ^% D- J# I2 A: `: N# m& g
) R& N2 `* y8 T4 e' G* \/ I ^- [sqlite3] s" D' e- p$ c) G/ h" n* A# t
- ;sqlite3.extension_dir =
1 I, S* A9 O+ `% E6 i6 m$ Q
* C( K, B; B& w& {" s- [Pcre]
" {) t% h2 x# ~: \6 N* Q' f8 _) e - ;PCRE library backtracking limit.% R k1 E, w; K# W4 G
- ; http://php.net/pcre.backtrack-limit
5 z9 t4 P5 _7 u3 S( M& ~ - ;pcre.backtrack_limit=100000
& j4 g" o+ e( _% ^, ]$ y$ t0 c7 q - ( q3 E% [2 L/ E4 F
- ;PCRE library recursion limit.2 @* P! f, ]2 C& Q3 d
- ;Please note that if you set this value to a high number you may consume all
5 u! D6 f* E0 q0 A) N# r' u- F+ | - ;the available process stack and eventually crash PHP (due to reaching the
& R1 c8 [5 ?- z" u `( K) l - ;stack size limit imposed by the Operating System).) t, e4 e; D% l/ T5 c9 j
- ; http://php.net/pcre.recursion-limit. O* k+ p* g5 ?' F: Q
- ;pcre.recursion_limit=100000
2 j# C& C$ N4 A% o7 x - ' V8 @9 V8 L; R) n7 h7 w# m
- ;Enables or disables JIT compilation of patterns. This requires the PCRE
. G4 @$ w% \" Z" x8 ^ - ;library to be compiled with JIT support.
- t. M5 |, {# d$ i; ]' R - ;pcre.jit=16 u" |3 h& W& [$ C
1 x2 U; @) [; o: O& d- [Pdo]- `4 V' g: w) w! y; c( M3 ~
- ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
. }2 t2 r5 m6 s9 _2 n9 F - ; http://php.net/pdo-odbc.connection-pooling
' _/ p" B$ i9 E2 R - ;pdo_odbc.connection_pooling=strict+ [) ~+ h9 y1 R ^* h" k
- # ?! ]# G. } k6 V: K; u6 s
- ;pdo_odbc.db2_instance_name! h, ?! @8 t9 z# U
8 g; c J- R" U5 u- [Pdo_mysql]
* Q) D* ^ [. E* o! W- D6 Y - ; If mysqlnd is used: Number of cache slots for the internal result set cache
6 ~' [; x& C5 Y6 P - ; http://php.net/pdo_mysql.cache_size
8 n6 Z& A# ]( J: S - pdo_mysql.cache_size = 2000
' y( R. U: D' L! g j) { - # H7 P. h8 B- y% l" M
- ; Default socket name for local MySQL connects. If empty, uses the built-in( o. Z; a, {, D6 x
- ; MySQL defaults.
# \2 d$ h2 F; f0 J3 Z# ]) `) R - ; http://php.net/pdo_mysql.default-socket( O7 a/ V5 o5 U' J
- pdo_mysql.default_socket=4 h3 J! W0 F3 l4 b) Z8 R, q( g4 I
8 {, ]8 g9 I4 ?' t) X- [Phar]
$ C% ]/ S \1 o" H3 L: } - ; http://php.net/phar.readonly. B* i4 j+ d- i( `" P
- ;phar.readonly = On
& g) ]* z: K4 p/ z
8 |$ N8 k! A) ?* W/ Q) W- ; http://php.net/phar.require-hash
3 P h3 m0 @3 N - ;phar.require_hash = On3 _- j- D! }# `3 u$ M3 m
- $ Z F; l9 A- o: a
- ;phar.cache_list =/ _" Z- X: A v% Q; P2 e! P* G
' G8 r, ^3 q- g4 L+ \1 Z. x6 _- [mail function]
q# T1 V2 ?, t8 h5 A3 V - ; For Win32 only.) U/ l' Q: j6 \" h) L$ A0 c
- ; http://php.net/smtp
- h C( E0 [6 N' ]( x/ h1 g - SMTP = localhost/ Z3 g+ |- D2 y- b( h; X, q/ S0 J
- ; http://php.net/smtp-port# U" `1 |! V" `4 |
- smtp_port = 25- G @6 |) |' d: v0 p
- , t8 s j, @3 E
- ; For Win32 only.0 r* U7 e- j. L$ p, Z
- ; http://php.net/sendmail-from; ^& i( k+ Y9 l y, O
- ;sendmail_from = me@example.com
* Q4 ^( T5 A" j+ X5 n5 U - ) T- |9 n u9 f: B5 W; ] ]% L9 B
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
v, N! f: B8 W/ U" U/ g- g - ; http://php.net/sendmail-path9 _% C8 Y! }! X9 `
- sendmail_path = /usr/sbin/sendmail -t -i' z- S' Q! ^# y v$ p! \- E
- + |4 Z0 i2 c: ^+ W7 Z, |8 x
- ; Force the addition of the specified parameters to be passed as extra parameters
( ?0 R7 H1 A6 \3 _+ r( e7 E - ; to the sendmail binary. These parameters will always replace the value of1 ?5 d2 M: i. ]& d
- ; the 5th parameter to mail().
* j+ _& l2 c% x! h, D5 o& e - ;mail.force_extra_parameters =
- d z* y$ u3 ~9 L9 C7 J - 0 P) W# r+ P. V h% P
- ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
- c, Z7 L; L* k: }5 k - mail.add_x_header = On
[) r* Q, M: F2 d! H - 0 P" e; N h8 J
- ; The path to a log file that will log all mail() calls. Log entries include
) T+ X$ D- _' R. s3 S; z - ; the full path of the script, line number, To address and headers.* b% q& \1 }* `' R
- ;mail.log =+ @# x1 q8 d; |/ o- P& J$ E
- ; Log mail to syslog (Event Log on Windows). |1 Z1 F. [7 Q6 ]3 L. M
- ;mail.log = syslog8 ] P8 T- F3 u& e5 |
2 {2 ^) _! H% S1 G5 R& A- [SQL]; x; Z9 U7 P! x! p1 L
- ; http://php.net/sql.safe-mode
; `) {! e, G4 H5 ` - sql.safe_mode = Off
- |$ M" N {( ~! z. p# P6 N - 4 N, n5 `6 N4 {
- [ODBC]
5 o+ e+ ?9 F9 w N+ A( k - ; http://php.net/odbc.default-db0 R, F* j% E% w" ~2 O B$ o# ?
- ;odbc.default_db = Not yet implemented
9 B" {# J3 i' Q$ J - 1 [1 }7 U. R/ m9 c. D+ H
- ; http://php.net/odbc.default-user
( s: }* P$ D2 n% m( V; Z1 f, C - ;odbc.default_user = Not yet implemented3 m! }! |1 ~3 S( n3 W
- ' Q9 n+ L$ ]9 F- b) P
- ; http://php.net/odbc.default-pw1 l" r+ G( j% l4 R$ `5 ]; J* D
- ;odbc.default_pw = Not yet implemented
1 ?/ }; {$ t$ P& i0 B. }
1 \ Y: s" E: ^/ L- ; Controls the ODBC cursor model.( R# J; Z: ?' A* U) V
- ; Default: SQL_CURSOR_STATIC (default).3 v% S* ]: W6 r
- ;odbc.default_cursortype9 Z o- ~ S* T0 x" E
" A" h! B+ R& u- ; Allow or prevent persistent links.8 I( ]( w9 e' g% |) Y* ~
- ; http://php.net/odbc.allow-persistent
4 K% V& x5 k B+ C$ M" F# n# a+ z1 e - odbc.allow_persistent = On! h5 x& }' q! b5 h+ l
+ I4 ~6 ?% o$ K5 A7 R: }* Y- ; Check that a connection is still valid before reuse.
3 e, h# _3 o8 k' S* |0 k - ; http://php.net/odbc.check-persistent, a# x3 G4 |# W8 C1 F
- odbc.check_persistent = On+ `; {5 U. Z' R: q0 A- i$ E( p+ l, b
8 w) w2 R- x, d- E5 m- ; Maximum number of persistent links. -1 means no limit.
. f: }: A" U" M8 N% O5 c* Y - ; http://php.net/odbc.max-persistent
+ r$ q7 b0 z1 Y \# m6 @- J - odbc.max_persistent = -13 `1 Q1 l [! _$ H) W, ~) [ o* C
Z0 D3 o* S: @1 Y5 W- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
7 K: |! n+ K& Q F6 h - ; http://php.net/odbc.max-links
( {: e5 B2 u* [6 [ L. V - odbc.max_links = -1
* p7 d1 p, `; _; S- A8 a8 y
2 J0 w6 J1 P4 r- ; Handling of LONG fields. Returns number of bytes to variables. 0 means4 u- _0 R$ w& E! P# u2 i2 X
- ; passthru.
, |0 v' p% X, N$ g" c- O - ; http://php.net/odbc.defaultlrl; W/ u: F. V: G# ?
- odbc.defaultlrl = 4096# u( i, j0 f( v- d" ]- `, o
1 i( t% p/ l O. c" d1 _. y# R- ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
4 z2 F/ @. ~3 B0 z - ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation4 ]* z8 C4 u3 y ~# h T
- ; of odbc.defaultlrl and odbc.defaultbinmode- F1 p6 [9 m) Y: E) u8 O
- ; http://php.net/odbc.defaultbinmode+ s2 G8 R4 G) i( f! H* i
- odbc.defaultbinmode = 1; J, L c9 [% o7 Z: d/ Y4 p
: f y& T! J: U2 ^. L- ;birdstep.max_links = -1& r- A( ?+ c% f7 b8 m' _ m
- 5 ~9 r1 P) |+ Q9 K" w# e- w, N! k
- [Interbase]
+ @: w2 v. K3 D2 f# s0 C8 L& g) c - ; Allow or prevent persistent links.
! `; W) e% V4 b - ibase.allow_persistent = 1
. S9 l; s* | { ~/ E' L% D/ F - 6 {/ _' F6 J9 d5 g
- ; Maximum number of persistent links. -1 means no limit.
( y' d1 O5 b8 u1 ]3 R+ U( ]+ A) n7 d - ibase.max_persistent = -1
5 q9 {- }; H! ]) Y4 Y - - G" z; Q0 Y+ B) l& |
- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
$ { }( t2 L7 s - ibase.max_links = -1' C/ k3 y6 C- l4 X9 j
- 8 `0 C( N) F$ b* Q
- ; Default database name for ibase_connect().+ ^5 J" P# L4 d9 z
- ;ibase.default_db =
6 o) q" g" V, R! f$ \: l' V1 @
0 c: f( b/ X+ |5 D0 n# }- ; Default username for ibase_connect().
: k6 s! p; K& `* H1 q - ;ibase.default_user =% b4 `( u8 N8 K* W8 f
0 f. q% a% }+ E" R( ?! q9 d5 r- ; Default password for ibase_connect().
* ^9 v0 a0 Q8 h( M - ;ibase.default_password =' J1 t& K3 n; d* @6 ~* P7 q% e
. e; T/ K" i! j, v C- ; Default charset for ibase_connect().
% q* }; J& m3 t2 d1 W - ;ibase.default_charset =' J+ Y b6 P" L
L9 n- W1 l& |* K; g a c- ; Default timestamp format.5 G( {) v0 D4 |5 G/ z4 I! _/ _
- ibase.timestampformat = "%Y-%m-%d %H:%M:%S"$ e0 I) D8 A; u. v& H1 ^8 M, V
7 `8 U* f. [- ~0 S- ; Default date format.
% T; E. _% P7 ?6 U0 h* k" s# a% W - ibase.dateformat = "%Y-%m-%d"
+ ~2 H% L- F' l& j7 I% P5 C - 4 _ M1 K4 q4 ^$ P! Y0 U+ E. `
- ; Default time format.
( E; e# `$ b. d3 J+ {# D; j - ibase.timeformat = "%H:%M:%S"& X4 C1 E, q# ]
4 ?1 o! w+ T# n% P. d; P- [MySQLi]
4 l3 z! ^ P% v2 A$ G. z - * W" i5 ]' E: ~6 I5 A& L
- ; Maximum number of persistent links. -1 means no limit.) K9 ~* J4 k3 X# {& E2 b+ D( u
- ; http://php.net/mysqli.max-persistent
& A3 V2 h6 l( K+ q - mysqli.max_persistent = -1
6 e$ N' C& \" j% d9 w S+ F - & Y# i+ F& A/ k' X1 H
- ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements& t- m h' t5 W. ^; h; w
- ; http://php.net/mysqli.allow_local_infile2 q4 R1 A! T! G9 R8 J$ s1 t& `
- ;mysqli.allow_local_infile = On5 C3 ~+ G0 @) U( O% ^/ U
Y; D4 A8 y. ?5 a+ _; O- ; Allow or prevent persistent links.( F4 Q9 o% c3 \4 m# R, i7 k
- ; http://php.net/mysqli.allow-persistent2 ~- T" @6 F$ x/ D, L' S
- mysqli.allow_persistent = On
) W! `; q& Q9 ?% S3 T6 A - + z% M7 L: @5 ]0 v7 K! V
- ; Maximum number of links. -1 means no limit.8 b l: l! x8 ]5 a0 Z$ {9 ^
- ; http://php.net/mysqli.max-links* k) Y4 i/ i" z9 D- P. M
- mysqli.max_links = -1+ |! P$ D7 I8 c% _2 s" Z
) A4 V; f4 O5 n2 ~, J- ; If mysqlnd is used: Number of cache slots for the internal result set cache
5 L" U7 C/ n' L - ; http://php.net/mysqli.cache_size5 X+ z7 D8 O/ q+ V
- mysqli.cache_size = 2000! } o% v+ G; r/ x
- 7 }7 M- @) C/ M/ h3 `
- ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
5 |, A4 b2 v/ ]1 x/ M$ L9 r - ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
7 o) j6 q# Z- s - ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
3 F- d0 Z' T# u% H8 O/ ]' q! } - ; at MYSQL_PORT.% \, @8 ^0 M& d0 a% l% ~0 z3 G1 k/ J
- ; http://php.net/mysqli.default-port
) i4 F7 \, E# ?: ~$ R& p6 d - mysqli.default_port = 3306
+ ? _0 E% C/ O! E, {4 |$ a
2 z1 ^' {1 A7 f* \ {5 [- ; Default socket name for local MySQL connects. If empty, uses the built-in
5 @+ `) J, q9 Q: Y$ L - ; MySQL defaults.
6 { h8 r- Q/ N8 X% V - ; http://php.net/mysqli.default-socket
& j7 P2 ?+ a0 v# v8 D9 w* S - mysqli.default_socket =) U8 _% q! |- j7 U
- $ j, M7 L+ Y5 X3 O0 V! n$ x0 x
- ; Default host for mysql_connect() (doesn't apply in safe mode).
: U) x% N+ k/ O. Y - ; http://php.net/mysqli.default-host
' N. U9 }" `$ q% M, q: O/ t% I; ~ - mysqli.default_host =
9 z( Z' Q8 q$ K; d% X - 8 [ N$ J6 Q1 u& [- x
- ; Default user for mysql_connect() (doesn't apply in safe mode).
4 n* A7 k/ v$ J; ~" M. h - ; http://php.net/mysqli.default-user
9 Q( P. R" S1 }8 }9 L( b% ]# x - mysqli.default_user =
0 S1 m6 J- X' G# O5 r! F# a
" Q3 x' ?+ e- W5 q; o% n- ; Default password for mysqli_connect() (doesn't apply in safe mode).9 ?( e. M/ o; Z+ t* h& W
- ; Note that this is generally a *bad* idea to store passwords in this file.
1 O1 f2 H2 H" U2 g# X' \ - ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")& Y" U$ U- ^+ I) _
- ; and reveal this password! And of course, any users with read access to this
* r3 k" C) e( @ - ; file will be able to reveal the password as well.
0 k/ Y$ f# h0 V - ; http://php.net/mysqli.default-pw
& c" x E- c% g4 b, H - mysqli.default_pw =
& y4 {& e6 U" T
d1 u6 O. l. g2 O2 H: n6 u- ; Allow or prevent reconnect
! s- x2 M, l: i; d3 Q$ _$ g* \; X+ ` - mysqli.reconnect = Off1 D+ T6 ?; B e0 Y
- 3 p: h, L& T, W6 }1 c" r+ `8 K
- [mysqlnd]
2 G6 w/ c5 G; ]6 x! u h* d+ C - ; Enable / Disable collection of general statistics by mysqlnd which can be
! j8 @- G- T; u8 X6 H* {3 F - ; used to tune and monitor MySQL operations.
. n: r5 B" F& V8 \1 f: M' N - ; http://php.net/mysqlnd.collect_statistics& F5 O2 X" t) C3 U* k' J" L
- mysqlnd.collect_statistics = On
" `2 Z2 h; c' Y - , b2 L; H& C& i% m/ R
- ; Enable / Disable collection of memory usage statistics by mysqlnd which can be4 v0 o5 L, |# n$ q* Z5 H
- ; used to tune and monitor MySQL operations.
/ E) S8 M+ x/ r - ; http://php.net/mysqlnd.collect_memory_statistics
5 B: ]* B2 K& F1 m - mysqlnd.collect_memory_statistics = Off8 N5 F" O) b+ \& o, ~) y B3 ]
- / Q( @" r& H# w- G0 r) P1 ~
- ; Records communication from all extensions using mysqlnd to the specified log5 y9 \& G. D+ j! t( \
- ; file.$ H. u/ r% Q+ o% Z- E7 t
- ; http://php.net/mysqlnd.debug. t: X# a( M( u3 O3 u
- ;mysqlnd.debug =
|( g: W+ ]- @6 M - 4 K2 q- @1 M, I6 y
- ; Defines which queries will be logged.) w& l/ c# o7 [; v: i' {
- ; http://php.net/mysqlnd.log_mask; F$ h- [( k5 g% j
- ;mysqlnd.log_mask = 07 t$ D* {* S) p: V
- 7 F: |- q' ?' N/ R/ H9 E: }* @8 B
- ; Default size of the mysqlnd memory pool, which is used by result sets.4 V7 e2 r$ @6 D, r9 T' |0 z1 k
- ; http://php.net/mysqlnd.mempool_default_size
' Q$ l+ R7 w* P- V - ;mysqlnd.mempool_default_size = 16000 v/ K0 ^- @* L; ~% F3 }) D
) B h2 T8 M' y0 ^# T0 Z: F- ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.4 g! a3 c/ x; m% ~
- ; http://php.net/mysqlnd.net_cmd_buffer_size
8 A9 D6 a7 \6 } - ;mysqlnd.net_cmd_buffer_size = 20485 D5 {, M1 W! E7 B1 e0 t7 s
! r7 T: T. U- O% m# A0 L7 i$ r- ; Size of a pre-allocated buffer used for reading data sent by the server in
* D- ]% G. J% j1 k% y1 [4 R - ; bytes.2 u1 y/ F4 [) ]( {) E: Y& h# ^
- ; http://php.net/mysqlnd.net_read_buffer_size
, e9 d3 f5 |# G/ X6 W - ;mysqlnd.net_read_buffer_size = 32768
* t/ w' F& {1 A% R" c - 1 \/ O$ Y0 e4 d" X
- ; Timeout for network requests in seconds." E- }/ }3 ^9 z& i' z6 i$ ?" ]& f
- ; http://php.net/mysqlnd.net_read_timeout; O8 l8 T3 m! l1 V, R# w! C* G' z- c
- ;mysqlnd.net_read_timeout = 31536000
% Y1 k* ]8 @* ^: y& P - C) S. b2 V! c7 K$ B2 v1 M
- ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA
# H2 M6 T8 O e8 l$ e$ V2 a! u- ] - ; key.) c5 }, n* Y6 U1 [8 O r" B) L4 N
- ; http://php.net/mysqlnd.sha256_server_public_key
& j+ e' _% l2 i7 u; [- H% w - ;mysqlnd.sha256_server_public_key =
8 ^* F" D% W: `* j( w# x2 @! d - 3 T( O# W7 y$ V6 t6 u9 F
- [OCI8]
B4 u" R5 J9 J" p9 k* F$ F
" y' u8 F8 ?' R( n& u. @- ; Connection: Enables privileged connections using external
' x% d& D* a8 P - ; credentials (OCI_SYSOPER, OCI_SYSDBA)
/ H1 A7 b* d7 W8 Q" l, e) L - ; http://php.net/oci8.privileged-connect* _" n v! }$ v- h
- ;oci8.privileged_connect = Off, Z# f- g& ]5 B- S/ U
5 A( ?3 R7 P. |# l) ~3 W4 v! X- ; Connection: The maximum number of persistent OCI8 connections per$ x7 w, t+ g, \. H$ A
- ; process. Using -1 means no limit.
0 j- a& Y7 D) V/ N - ; http://php.net/oci8.max-persistent
; Y# |' t* Q Z4 ^* N6 C! P l - ;oci8.max_persistent = -1+ M1 K/ D* C' a! F3 c( N
* R% _* F' `1 v$ ?- ; Connection: The maximum number of seconds a process is allowed to, Q9 {" I, h! q. f$ n, w
- ; maintain an idle persistent connection. Using -1 means idle
, \: r8 P x& e0 I3 ^1 L' z" i - ; persistent connections will be maintained forever.* V' M' H. H+ O& R# k9 C8 t
- ; http://php.net/oci8.persistent-timeout
2 }& A% |2 Q; i4 X - ;oci8.persistent_timeout = -1
" d9 M: A$ a0 O6 b2 y! j( t% ^
+ F& H) E" Y# [! S$ T- ; Connection: The number of seconds that must pass before issuing a6 v1 o, g2 [, h1 ]9 A( ]/ I
- ; ping during oci_pconnect() to check the connection validity. When
: b4 L K2 m. \ - ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables0 D6 x; M* u! i$ O$ X
- ; pings completely.
/ I' b& g, m$ Q- m - ; http://php.net/oci8.ping-interval
/ u, u0 ?3 K: ?/ C - ;oci8.ping_interval = 60$ n: H8 T) h+ S
- # \' V$ y% d7 B \& A; c$ j
- ; Connection: Set this to a user chosen connection class to be used2 y( l/ A5 `' T6 X$ S: d
- ; for all pooled server requests with Oracle 11g Database Resident5 L! ]8 w$ u8 j% O! q+ d, i+ K
- ; Connection Pooling (DRCP). To use DRCP, this value should be set to% m5 v( ]" I5 A
- ; the same string for all web servers running the same application,
6 _1 d2 M8 m) s - ; the database pool must be configured, and the connection string must
8 Y: P5 v/ M0 o# @! r+ w - ; specify to use a pooled server.
# v7 `' k: y, l0 f; x4 K+ q - ;oci8.connection_class =
- f6 x) |2 _) m7 P& s3 W9 a+ N
$ s' b0 |: F3 @4 t- ; High Availability: Using On lets PHP receive Fast Application
) w( _' K* g/ {& k' q9 a8 D - ; Notification (FAN) events generated when a database node fails. The
4 _, H. E6 h- n# ^/ |4 X Y - ; database must also be configured to post FAN events.
. `7 `% T- a( x/ L0 j% Z1 C; y - ;oci8.events = Off4 X& B I7 t. e
- : c/ t4 W1 W( V3 G3 u
- ; Tuning: This option enables statement caching, and specifies how
O3 \4 y8 e# N9 V! Y - ; many statements to cache. Using 0 disables statement caching.) I3 b/ j6 \; j' O% d% W
- ; http://php.net/oci8.statement-cache-size
' v9 M5 I4 i1 j& |: |' p5 T+ Y% k) A - ;oci8.statement_cache_size = 20( |8 M5 W- G2 k( m, n
6 {7 k+ b6 }) W& v- ; Tuning: Enables statement prefetching and sets the default number of# `) v" @& V9 [7 C% R, N7 V: @" x
- ; rows that will be fetched automatically after statement execution.
; W u( Y2 P( F8 e - ; http://php.net/oci8.default-prefetch X+ J( w/ W. U1 {( x* t" {7 K/ F
- ;oci8.default_prefetch = 100& b6 n. f, h, K4 z8 |. ]
- * c; g5 b0 G1 |% h2 e
- ; Compatibility. Using On means oci_close() will not close, C8 L& @0 _; u: M% r4 l6 d
- ; oci_connect() and oci_new_connect() connections.% U0 u( |4 ]3 g" J& M- s
- ; http://php.net/oci8.old-oci-close-semantics
* j1 a" ^- x; f# B9 }2 e/ h - ;oci8.old_oci_close_semantics = Off
6 s( a5 {& R' W' N1 O# L
) R& W0 b/ \' q1 y) u4 _. T' n0 U- [PostgreSQL]
0 m7 L$ x, g5 D4 Y - ; Allow or prevent persistent links.
' | y$ m J0 A - ; http://php.net/pgsql.allow-persistent
' r5 I. ]1 D' d9 J3 f. d2 D& O - pgsql.allow_persistent = On' J, }5 \' H! [) C: v' S I
- ) X- V* ~. U3 f2 b/ i* K
- ; Detect broken persistent links always with pg_pconnect().
( \/ F1 { \) M0 ?3 { - ; Auto reset feature requires a little overheads.
' k, Y I- }. n9 Y; m! Z( ~ - ; http://php.net/pgsql.auto-reset-persistent) B, y& G" s# g' T! m& J; g
- pgsql.auto_reset_persistent = Off A$ W: K+ E1 p* G# v0 E0 F
- $ C* O) W3 f, k) s' q$ M9 k
- ; Maximum number of persistent links. -1 means no limit.
7 O( k( B2 i+ E1 j/ t2 A8 o2 g - ; http://php.net/pgsql.max-persistent) s5 M! e$ T: ~7 ~- A8 Q. c
- pgsql.max_persistent = -1
, n2 z8 G6 D' |6 G$ d - 2 H( ^! J) m0 O `% Z
- ; Maximum number of links (persistent+non persistent). -1 means no limit.
Y5 n: a* G z; _/ [& @ - ; http://php.net/pgsql.max-links9 q, Q- ?# v1 x1 z" X
- pgsql.max_links = -1& l) K& [+ ]* @" n8 b
: w' K+ }6 _0 L5 _4 F5 d- ; Ignore PostgreSQL backends Notice message or not.; J' h" d$ o- J7 Z- z: @* Y( W7 o
- ; Notice message logging require a little overheads.6 e1 m& N$ X9 Z) m4 f
- ; http://php.net/pgsql.ignore-notice
9 V$ B4 G V3 g/ D0 O; ~ - pgsql.ignore_notice = 0
. y& @# X+ ]7 p: F X( [" v
" H( z* ^' ]2 ]2 Z- ; Log PostgreSQL backends Notice message or not.$ C; j0 s3 C6 x' y, Y
- ; Unless pgsql.ignore_notice=0, module cannot log notice message.
; ?- P0 n1 k8 W - ; http://php.net/pgsql.log-notice2 J4 \( S# z3 O* N& S& f4 u
- pgsql.log_notice = 09 R" y s# t, J& I+ \ ]5 r9 J
- B, y5 o0 q& f' W- [bcmath]1 d& l3 H, {% F; {! O8 ?
- ; Number of decimal digits for all bcmath functions.9 ~: M U+ `9 V0 s: J; e; _" b
- ; http://php.net/bcmath.scale
0 y2 i+ _" B' B4 K - bcmath.scale = 06 b4 e# F/ N4 V V9 W9 F
- 5 l. ~6 g. l$ k9 \+ b4 s, X+ o
- [browscap]
) I2 o- J \3 P6 r1 G - ; http://php.net/browscap
. t5 J" w( {) z6 _! s5 Y - ;browscap = extra/browscap.ini
$ d5 w$ X& I" G2 R0 ~
) B T1 @8 z+ w' F. p+ [- [Session]
, C+ F% s( {# Q, g7 c {7 M/ `6 R - ; Handler used to store/retrieve data.: S0 x7 r7 `5 K6 y$ w6 s" K7 e
- ; http://php.net/session.save-handler8 E6 u9 U* n! i# o5 C7 Z
- session.save_handler = files7 s! ~! L) j0 Y5 ?5 `2 Q
- ; y. G# a, X. T- D) l3 Z
- ; Argument passed to save_handler. In the case of files, this is the path
. m6 I! b% K A: F% ]5 E8 p1 C - ; where data files are stored. Note: Windows users have to change this
; a0 P0 ~) d# W - ; variable in order to use PHP's session functions.3 a2 H" E# C$ S2 F# E3 y
- ;
/ M& Q7 N7 q, C: ^9 O+ g: T' N - ; The path can be defined as:
1 q X% O8 C* p4 |; ^ - ;- q1 g1 J/ e1 b6 e1 t
- ; session.save_path = "N;/path": H8 D1 g; S0 Q" [9 q
- ;5 @# i- s8 f& Q! T3 k
- ; where N is an integer. Instead of storing all the session files in
/ U, Z3 |; e6 D! D - ; /path, what this will do is use subdirectories N-levels deep, and
: }5 o6 G! X- D# s1 ~$ i2 L7 _. T5 N - ; store the session data in those directories. This is useful if! [! o! s. D- y$ l% n- Q
- ; your OS has problems with many files in one directory, and is" b- I4 k3 u8 \
- ; a more efficient layout for servers that handle many sessions.
/ ^; v' ?! l, f- o; Z - ;9 x) f5 g$ a {- Y
- ; NOTE 1: PHP will not create this directory structure automatically.
9 K+ D+ B' H+ r/ ~2 ` - ; You can use the script in the ext/session dir for that purpose.
" ]) e3 V/ l. Z) i0 ~3 m! m - ; NOTE 2: See the section on garbage collection below if you choose to+ R z3 O7 O# |- s5 r8 }
- ; use subdirectories for session storage; r8 j4 f' t- W1 U
- ;
7 l: X4 i! R0 p( h; X - ; The file storage module creates files using mode 600 by default.
! @% I1 H: @! D [; `5 k; Y - ; You can change that by using+ A4 p s9 G# ^* Y' \# L# r
- ;( i' R' P* n' R- H6 K
- ; session.save_path = "N;MODE;/path"8 {% f$ l5 |3 y) @
- ;
! d$ }3 k& Q: |5 \ - ; where MODE is the octal representation of the mode. Note that this. D7 w1 Q1 k" L( c6 ^8 B
- ; does not overwrite the process's umask.' X4 O* {6 M) D# L# F& S2 S
- ; http://php.net/session.save-path4 v1 a8 |$ r) }; a7 G; n/ S# i& i
- ;session.save_path = "/tmp"4 B& F: H) x+ n: @
! u0 T* B% \5 g- ; Whether to use strict session mode.
/ ~; o+ P; x" ], L& z# i' H$ E - ; Strict session mode does not accept uninitialized session ID and regenerate
# q2 j, |, m- } - ; session ID if browser sends uninitialized session ID. Strict mode protects
$ ^/ {+ j% t0 M, b" _1 |/ D5 U! n$ D - ; applications from session fixation via session adoption vulnerability. It is
3 h. B1 I* g$ K( ^8 ~% ]7 y' C - ; disabled by default for maximum compatibility, but enabling it is encouraged.
4 w/ t. m$ _: w3 s+ ^9 e1 q - ; https://wiki.php.net/rfc/strict_sessions
" _3 o; e+ H" {. F; D - session.use_strict_mode = 0 F5 `$ H- ?9 a; t" j! i9 B4 ]
- ) }0 Y; G. d. [, F
- ; Whether to use cookies.: Y( K F; n2 \
- ; http://php.net/session.use-cookies0 U* t9 _& V W
- session.use_cookies = 1
- r7 e$ V! }, V: I) \4 W- A - 9 O) z2 c5 }0 F: G& K0 B
- ; http://php.net/session.cookie-secure7 `' d9 j: Z( I0 T, c
- ;session.cookie_secure =6 _& Y: M" v2 ? ]) {
- & l5 E/ c" ]! t% ?" F/ h: M
- ; This option forces PHP to fetch and use a cookie for storing and maintaining
: ]; H1 ~. W/ q! H) R2 Z - ; the session id. We encourage this operation as it's very helpful in combating
4 p+ U8 d/ W3 K9 A7 z - ; session hijacking when not specifying and managing your own session id. It is* ^( m- F8 t: B! `3 H& f
- ; not the be-all and end-all of session hijacking defense, but it's a good start.
. @6 g! F$ M8 m" V" t& V - ; http://php.net/session.use-only-cookies# h. y& ^" N( R; b
- session.use_only_cookies = 1# t d& @) n' ?6 v
- " ]* i( Q- ?8 d: \
- ; Name of the session (used as cookie name).; u9 B9 l! V4 {
- ; http://php.net/session.name8 [, B( |! @' t2 W
- session.name = PHPSESSID) L; o0 w L& p# R; M* r
- T8 t) `6 _/ a5 z* P1 T' @
- ; Initialize session on request startup.9 A" q. ^0 z7 u) k% c
- ; http://php.net/session.auto-start
, _4 [& p9 l% ] - session.auto_start = 01 ^& d9 [8 Q* _9 f: |. K% X
- ! X& C. |; A' W% J/ g6 J: }& [, x3 w
- ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
# [' C2 i( @9 e" \$ V( V/ e0 S - ; http://php.net/session.cookie-lifetime# x4 y8 x6 i& ]) [
- session.cookie_lifetime = 0
& t Q* A% F! Q1 O0 _7 e' I# p: m - 4 O* Q+ i/ a7 ?0 n
- ; The path for which the cookie is valid.
3 k% D+ H, a% o) Z' |( { - ; http://php.net/session.cookie-path
. O2 l! m$ Y4 c C q - session.cookie_path = / o( R- t0 o( c2 G. S* D6 w2 o
- , Z8 K& K; X2 L! {5 ]& b7 |
- ; The domain for which the cookie is valid.3 @0 \0 s- c. T9 h( `. b
- ; http://php.net/session.cookie-domain! r/ n$ ?' F: b3 P/ \) h
- session.cookie_domain =' @; ]( Y% ?4 {" H# D C$ K; N! D
) R0 V, R; Q* F `- ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript., T' {. B4 i- Z, R4 r5 d+ u
- ; http://php.net/session.cookie-httponly9 _3 }/ z& ]! z V7 n+ n
- session.cookie_httponly =
4 y9 U0 _$ t% k- F% N1 O - . u& u$ Y6 y8 [" Q" f8 M! _
- ; Handler used to serialize data. php is the standard serializer of PHP.
$ S) v, @3 G1 k. L - ; http://php.net/session.serialize-handler
' I1 q- L3 f% K, d - session.serialize_handler = php
$ J; L E, x( g: O% p - 4 a" V0 n7 q7 V: N
- ; Defines the probability that the 'garbage collection' process is started( P/ Y) X# o$ v4 {% {* q. _
- ; on every session initialization. The probability is calculated by using0 G* h+ H( K6 p9 f9 t
- ; gc_probability/gc_divisor. Where session.gc_probability is the numerator
& b+ Q" }( U( p' n) c' ` - ; and gc_divisor is the denominator in the equation. Setting this value to 1
8 a. O5 `1 j5 q" I6 ~9 A! s$ S - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance# Y7 e0 }7 l, ?6 o3 ?
- ; the gc will run on any give request.7 R4 u* Z% b0 q
- ; Default Value: 1
( E! j+ @4 r0 b9 k* g, S - ; Development Value: 1
2 p6 ^ J" O7 R* f8 p4 I) Q, n - ; Production Value: 15 j, J1 w- q: a m5 ~3 q+ ]
- ; http://php.net/session.gc-probability0 |+ S" s# J7 ]8 m, E! p
- session.gc_probability = 19 f" S* ~' _7 E4 \5 T& K9 f
5 t: t9 w- G/ H! H, v; U8 B1 i$ N- ; Defines the probability that the 'garbage collection' process is started on every, m2 V/ N0 o* c5 ~5 \
- ; session initialization. The probability is calculated by using the following equation: C: F+ e, I8 k2 S" F2 y2 G# H/ C
- ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
0 f" ^* k# @0 g - ; session.gc_divisor is the denominator in the equation. Setting this value to 1
0 w3 }4 K. u: E - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance7 |8 _2 B& G: u; {
- ; the gc will run on any give request. Increasing this value to 1000 will give you
) O( ?* i! P$ F f9 Y' ? - ; a 0.1% chance the gc will run on any give request. For high volume production servers,) y" w: K3 P/ N6 S# D% L$ I U8 t
- ; this is a more efficient approach.$ j+ s( @* w; F9 d' B6 A, A, D
- ; Default Value: 100# n9 L1 I% B" y# F, g
- ; Development Value: 1000" i, F- M2 y2 a
- ; Production Value: 1000: P0 ^4 V4 S) d" b5 G
- ; http://php.net/session.gc-divisor8 D+ F. ?3 x1 R' j/ ]: E/ ~. o9 M
- session.gc_divisor = 10001 _4 |: p9 K4 z: X
- ; B/ l' u7 N6 P0 t
- ; After this number of seconds, stored data will be seen as 'garbage' and
# }' \% y4 d5 R; k - ; cleaned up by the garbage collection process.
! v& ?6 w& }& U: l$ |0 U - ; http://php.net/session.gc-maxlifetime
( y* R$ P+ d5 f) X" U! H% B - session.gc_maxlifetime = 1440
# _+ b2 q8 W, ]# b- l. ~ - - ~+ o- x0 P S; g
- ; NOTE: If you are using the subdirectory option for storing session files: M9 m4 I0 Z( V7 ]1 V
- ; (see session.save_path above), then garbage collection does *not*7 O. U R" Z! r$ @- @7 l, h
- ; happen automatically. You will need to do your own garbage
9 \6 F! H* Y1 J0 j( T - ; collection through a shell script, cron entry, or some other method.5 C$ D4 @3 |5 R7 e) K3 v* C9 |8 n+ a
- ; For example, the following script would is the equivalent of9 P. H/ R% f: B8 R) Z- v
- ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
0 ]* Z0 B U1 v+ W/ R* H& \ - ; find /path/to/sessions -cmin +24 -type f | xargs rm
* H3 ?( p2 \5 I - k3 Z8 K9 i& ` H
- ; Check HTTP Referer to invalidate externally stored URLs containing ids.
, ]. `4 P% F, \9 k - ; HTTP_REFERER has to contain this substring for the session to be5 U% ~6 Q% j% B; b( ]
- ; considered as valid.3 X# T p! F( \$ [8 ^: c
- ; http://php.net/session.referer-check* m% R( E* Z- x$ ?4 X: S: P7 @ t
- session.referer_check =; i2 V' q' }8 \( O
5 ?7 a6 s$ Y4 i f/ c7 u- ]& Z4 R2 Z- ; How many bytes to read from the file.( q _* i4 _3 k) e2 r
- ; http://php.net/session.entropy-length, @6 k! x- G" U" \+ Q+ u6 }+ b
- ;session.entropy_length = 32
- w/ n* F& d% S - 9 f s2 X8 B) I
- ; Specified here to create the session id.+ i! F/ o7 D0 {9 A
- ; http://php.net/session.entropy-file
: E" B, O' l3 d X# Z k, B - ; Defaults to /dev/urandom
+ F- X6 h; w& K* n, Q( D% P2 x - ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom
3 ~. Q6 o0 p) Y, r; G6 A: ] - ; If neither are found at compile time, the default is no entropy file." U; Q7 x% I( z- B
- ; On windows, setting the entropy_length setting will activate the0 K1 F8 @7 m( s. g
- ; Windows random source (using the CryptoAPI)8 ]8 W3 E$ v- K3 y4 q! ?
- ;session.entropy_file = /dev/urandom0 k4 d$ F6 Y) Z
% N, g* u0 [* N2 E- ; Set to {nocache,private,public,} to determine HTTP caching aspects
9 _9 E% f0 |& p( H2 m - ; or leave this empty to avoid sending anti-caching headers., L1 F. m) l' J" Z: W4 ?! w
- ; http://php.net/session.cache-limiter
+ E8 H0 w% k. V0 y" M$ a - session.cache_limiter = nocache% L3 O) N3 \" i! f
* J6 y) f) n# ~6 l" U5 ~& L- ; Document expires after n minutes.
$ P5 ]3 C# V- z! B - ; http://php.net/session.cache-expire6 _* H; `' o0 |& b f) k( H
- session.cache_expire = 180
3 G6 h0 c2 U0 J! A - 9 {# q9 Q7 N) n8 o3 }2 G$ b( A# c
- ; trans sid support is disabled by default.
, l/ m+ p1 I' J) s - ; Use of trans sid may risk your users' security.
5 N6 `/ ~" j( L2 c - ; Use this option with caution.
- p: `# P' `0 E5 P/ b1 ? - ; - User may send URL contains active session ID9 M: t; r+ Q* j7 Y2 B4 m6 h
- ; to other person via. email/irc/etc.
3 k1 J1 P8 @! |- c5 K( l! F T - ; - URL that contains active session ID may be stored; c3 |5 s2 [* d4 Z
- ; in publicly accessible computer.4 O$ g4 A2 M) E
- ; - User may access your site with the same session ID
% T8 [9 b" w) C% w. H - ; always using URL stored in browser's history or bookmarks.8 I1 j* D" V- {: N
- ; http://php.net/session.use-trans-sid6 `2 P* g( B$ g) c/ e
- session.use_trans_sid = 0
G5 J7 Y. a* ]# W
$ |8 E" K; H. V- Y H" o- ; Select a hash function for use in generating session ids.2 \3 c& O3 h& {: c2 E( x
- ; Possible Values
2 R. J6 v0 K. W* _ - ; 0 (MD5 128 bits)- F3 R) M3 D) ^7 `9 v! O
- ; 1 (SHA-1 160 bits)8 r7 l- h/ y4 k% F8 G
- ; This option may also be set to the name of any hash function supported by+ i, K7 A# R8 A
- ; the hash extension. A list of available hashes is returned by the hash_algos()
2 d3 g& h+ W0 R6 Q( \5 C2 m - ; function.4 B5 O7 j$ _! o+ M" G
- ; http://php.net/session.hash-function3 n$ y% f5 f* F' p0 K2 w
- session.hash_function = 0! |8 X0 E( U1 ]/ t! s/ X+ w
9 T s" k- y2 N; N- ; Define how many bits are stored in each character when converting
; _. z! D8 t. @) v' f" H# K - ; the binary hash data to something readable.
, D1 E" p5 {6 Y! f# X. \+ C0 K - ; Possible values:
0 l4 P$ ~- r( Z! V1 N5 Y# h: t# i - ; 4 (4 bits: 0-9, a-f)5 [: F f& J* ]3 T* v- f
- ; 5 (5 bits: 0-9, a-v)
4 a4 B; q) E& j: K% e9 R; _ - ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")9 p/ q9 W. t/ L7 n
- ; Default Value: 4& Q4 p* s/ s. K+ p7 Q' U6 {
- ; Development Value: 54 ^+ U% k$ ?* T! a
- ; Production Value: 5
1 o: T/ F, j; x& D$ E4 ], w$ W - ; http://php.net/session.hash-bits-per-character$ W$ O% }1 z% M
- session.hash_bits_per_character = 5
$ H! b& W8 S1 c. z% y g - 8 D- j) Z7 s k3 F: M7 }2 H
- ; The URL rewriter will look for URLs in a defined set of HTML tags.
0 C$ ^; B( b$ \" v - ; form/fieldset are special; if you include them here, the rewriter will# J7 D' K4 F$ V4 J' c& z
- ; add a hidden <input> field with the info which is otherwise appended. G ^& J, Q6 b4 ]+ I5 a! m
- ; to URLs. If you want XHTML conformity, remove the form entry.
" ` v3 A f) o/ k - ; Note that all valid entries require a "=", even if no value follows.
/ @5 E, X0 C. L5 n2 _5 e0 i6 W - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="/ c9 U( B7 F( e' Q7 l. j% d
- ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
- H: f& w) { z6 C# M% N5 J - ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"7 b* T; k' H( [. x8 f- d
- ; http://php.net/url-rewriter.tags
* H6 m/ a' e# }! M# y4 T - url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
' l3 C6 O+ F; L8 e! T; y( l
9 y6 P, i8 b- D& Y! i& ?* I- ; Enable upload progress tracking in $_SESSION
7 V3 O0 m# H9 K% m" b o# O - ; Default Value: On
3 n" e0 i- n+ A8 U$ `" p/ r$ y - ; Development Value: On, z7 L c! A/ B8 D0 y* Y k
- ; Production Value: On
% h, D2 Z* P- |+ k' O3 m8 J - ; http://php.net/session.upload-progress.enabled/ n9 ?: n1 E. k# e
- ;session.upload_progress.enabled = On# e' d( J2 L7 G" f
\+ R7 z& ~/ t5 Q$ Y- h% \( K- ; Cleanup the progress information as soon as all POST data has been read
7 g: \9 L/ P) D - ; (i.e. upload completed).
L; g$ r. |" i9 S% e - ; Default Value: On2 z. ~4 l3 d0 j S
- ; Development Value: On
3 b( u( q" y7 e& m; F5 Z - ; Production Value: On
" W+ ]1 u- r4 L z7 \ - ; http://php.net/session.upload-progress.cleanup: n0 P3 a& \! I2 b& o
- ;session.upload_progress.cleanup = On
3 t* L. C1 y# W9 [ - 8 q( s5 _. g* C
- ; A prefix used for the upload progress key in $_SESSION
* K# Q, o7 r% m3 K+ L' } }0 b - ; Default Value: "upload_progress_"- m- y8 o( i$ V0 R5 s% e* N6 T6 Q
- ; Development Value: "upload_progress_"
$ K1 i% n$ X& K1 d! H - ; Production Value: "upload_progress_"
6 p: n% b0 H" B - ; http://php.net/session.upload-progress.prefix' X. E$ H9 M3 L! x+ P- W; U1 q
- ;session.upload_progress.prefix = "upload_progress_"
+ r, u1 ] z) B/ o! ]; S - & C* Y% d" O7 d, p
- ; The index name (concatenated with the prefix) in $_SESSION
- j. j( }, y9 I2 w/ s8 i! W - ; containing the upload progress information
5 e o% k9 I v. ^+ s" c - ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS", E6 E ~4 J4 z: X( `$ R
- ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"+ o6 J, |& x1 W/ z
- ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS"* i, i+ _' _( N
- ; http://php.net/session.upload-progress.name" R# X8 ^+ m- A+ n
- ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
* i% C) A" X. h/ R3 J: P
) O: n$ |. W& W! `$ f# D& @- ; How frequently the upload progress should be updated.( T/ @# Z. T+ m4 k' ~5 i" q, C! H
- ; Given either in percentages (per-file), or in bytes! m ]' c6 a$ A
- ; Default Value: "1%"( Q5 X: o* _% \7 Q: J% @
- ; Development Value: "1%"
! T7 P5 ?1 ?* F- T, ~ - ; Production Value: "1%"
* L# r9 W, o1 J( ?5 Y% {. q - ; http://php.net/session.upload-progress.freq
. Q5 k+ ^- }# [) v - ;session.upload_progress.freq = "1%"% |3 t: r8 X* e# q9 E
- 5 z) L/ n8 v# B' P: z* E
- ; The minimum delay between updates, in seconds: h% ?" v( I8 ~1 O! X9 c0 P# T
- ; Default Value: 1
5 l# |, w- s, h$ R0 | - ; Development Value: 1
3 t, F8 J' }5 H2 i+ ]6 ` Z# @" v - ; Production Value: 1
, G( V7 R; U6 s* a& |, D1 X9 W - ; http://php.net/session.upload-progress.min-freq- K' [ q Y: W
- ;session.upload_progress.min_freq = "1"
: X1 G/ T: e' z3 [9 [ - , c" j* M. R# X/ m! `. D) s! M, @
- ; Only write session data when session data is changed. Enabled by default.( S3 j/ w. I! q- E7 C- d
- ; http://php.net/session.lazy-write
# e; U1 |7 j' i - ;session.lazy_write = On
0 m7 D4 U! H9 g& Q9 X8 K8 q
) ^1 E: j- Q9 B( E; J- [Assertion]
2 p9 p: P$ O% y4 p8 h - ; Switch whether to compile assertions at all (to have no overhead at run-time)
! k$ Q8 S. \" \1 [" D! p( p - ; -1: Do not compile at all% `% {& y" H( z7 r
- ; 0: Jump over assertion at run-time$ a( G* u# u0 Y4 X& W! `) g9 X
- ; 1: Execute assertions
& h6 I/ {2 ~, Q4 F& @" J7 V/ j/ n - ; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1)
1 `. _6 h* O" H2 E% o y$ H - ; Default Value: 10 G4 ~2 h- s* L7 f! L; O
- ; Development Value: 1; d* x* n5 \) H
- ; Production Value: -1- L: `4 J/ w( s/ `9 O) E4 T
- ; http://php.net/zend.assertions+ `6 M- v% A7 z) f% h( @1 i
- zend.assertions = -1% b* f1 U% Y/ r5 u- z8 ~3 q
- ' b% Q' I- w8 Z3 Q2 v" ~ c' s, F
- ; Assert(expr); active by default.
6 M) ~5 T7 y+ }# [! F - ; http://php.net/assert.active
! O, ?9 m r' z! M+ \8 D# n# ? - ;assert.active = On
* i6 [- W3 N2 Y7 L
4 e2 Q& a" y. s7 D6 w- ; Throw an AssertationException on failed assertions7 Q) {" ^& D) {2 ~
- ; http://php.net/assert.exception8 {# {4 ~& k+ b+ A- ]% V
- ;assert.exception = On' s. E& L1 [, `6 U) `
6 {. |1 d6 o$ G ^, q6 `- ; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active)- R# F/ i2 J9 o; s% Q4 E; P p1 i
- ; http://php.net/assert.warning
/ X! ]' T* a! ^' O( h: ?* q - ;assert.warning = On
! q6 U; Z5 B: A6 e( j3 A2 U$ s
V: j' c) v8 c- ; Don't bail out by default.. `. E5 g9 J- r7 K. x( i7 M
- ; http://php.net/assert.bail! M. ]7 G; L; x2 L, T- a" C4 p
- ;assert.bail = Off% w9 K) P. T5 N" i3 C
- 9 X9 N0 _! X( H y1 v4 K
- ; User-function to be called if an assertion fails.0 R* H% A' Z& ?5 J- @
- ; http://php.net/assert.callback' ]9 W* m: g/ X" k6 w
- ;assert.callback = 0
; e" e1 ^! a3 U& n7 e - ' u$ H1 d0 J2 q) {; X! D8 A$ c+ I# v H
- ; Eval the expression with current error_reporting(). Set to true if you want9 r, ^: k ^" ]8 F4 |/ j+ }
- ; error_reporting(0) around the eval().
* }( T, ~7 T5 G7 S - ; http://php.net/assert.quiet-eval
: ~, @* v) T& m) k9 }7 c: c - ;assert.quiet_eval = 0) Z, v4 I* E0 \7 J/ u2 F: q8 g
- " |; W$ F; b4 M' p
- [COM]
J! f3 ]" f# s* J6 O+ ]% v" C - ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
7 g1 T" g* Q/ X! d - ; http://php.net/com.typelib-file
- l- T) w, P6 E8 x) q* z7 n7 y9 h - ;com.typelib_file =2 s. Z8 O; m1 F) g5 G, [( m0 Q
- ; d6 ?' Q K! G2 q6 V; Y, A9 k
- ; allow Distributed-COM calls
( ]3 l% b' o0 h& J* b - ; http://php.net/com.allow-dcom
, ?1 X% R1 Z% Y# R - ;com.allow_dcom = true: _1 K( n' n$ Y4 h+ ]
+ h# G X: c$ n3 |: \7 p6 J; C- ; autoregister constants of a components typlib on com_load()' x# x7 W' }; H9 u! K0 D
- ; http://php.net/com.autoregister-typelib7 u) \$ b' @# t6 I; u0 w8 S
- ;com.autoregister_typelib = true
+ Z$ N1 k8 ]+ i$ I, F8 Z% z - ( N# Y5 P! m# t. `% o
- ; register constants casesensitive: u* J) \- ?1 D. W3 V2 [6 D
- ; http://php.net/com.autoregister-casesensitive
$ Q9 @( `6 x+ ?1 d& U2 A - ;com.autoregister_casesensitive = false$ @ ^4 o0 E! M" I
# m" r) _- d# v) @& l2 E- ; show warnings on duplicate constant registrations
- T- Q. M" O* h) s( x# w - ; http://php.net/com.autoregister-verbose1 F. o/ |1 m" e7 O o: K
- ;com.autoregister_verbose = true; }( D0 I' X/ w& l, k3 D
; @" \1 f2 T* }; B4 j# h- ; The default character set code-page to use when passing strings to and from COM objects.1 H0 f9 S& Z- f J
- ; Default: system ANSI code page3 C4 \ e, @/ M' y. {. y/ g
- ;com.code_page= s% k1 z, G1 B6 h3 t( Z) W
# J4 Z9 t( P& J1 T. u" C- [mbstring]; U9 ]8 s! E' P/ C5 Q
- ; language for internal character representation.
3 a2 D& G5 `+ T' U - ; This affects mb_send_mail() and mbstring.detect_order. W& \4 D! `. k% f& n& Y& @
- ; http://php.net/mbstring.language
! d( B: B3 g& E- \; w3 N$ r - ;mbstring.language = Japanese
' q' a8 E2 B1 @7 ?' e% t
) H: Z$ @& [: x: L6 S- ; Use of this INI entry is deprecated, use global internal_encoding instead." q$ U5 _" v( a1 k/ Z; |+ [1 c
- ; internal/script encoding.' @9 z K) \# m9 e: S/ h& z0 r
- ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)2 H7 c1 V N; [6 ]
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
6 _/ [/ v7 y) s, ?- ^ - ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
! N5 ~2 X% s* x$ c$ N - ;mbstring.internal_encoding =3 {, x. ^1 ~' U
- + H' C+ ?- k1 p/ p+ v/ }0 ^7 y8 _
- ; Use of this INI entry is deprecated, use global input_encoding instead.
0 b; m L+ H% B - ; http input encoding.
$ T7 y: I1 ^+ @. q1 ?6 a$ x - ; mbstring.encoding_traslation = On is needed to use this setting.
5 l! y* I4 ?5 r$ B' w - ; If empty, default_charset or input_encoding or mbstring.input is used.: v2 K3 L9 M3 T6 f6 H( R( X/ c
- ; The precedence is: default_charset < intput_encoding < mbsting.http_input
' n, ]* l- o2 A Z, t2 }3 d - ; http://php.net/mbstring.http-input
3 j0 V( |8 l/ I& W5 ? - ;mbstring.http_input =
+ h7 J4 a# i+ [* E" @! ^
1 l$ Q0 Q0 |5 I7 X* u7 ]* T- ; Use of this INI entry is deprecated, use global output_encoding instead.+ L, b E- g# ~% C
- ; http output encoding.
5 n5 Z5 O3 j! s. E8 Q0 }4 f - ; mb_output_handler must be registered as output buffer to function." G8 \" m+ R" C# d5 `
- ; If empty, default_charset or output_encoding or mbstring.http_output is used.
+ k4 M; Y7 `& j7 B# E( {: n - ; The precedence is: default_charset < output_encoding < mbstring.http_output5 v @% B+ O" B# X6 c; l
- ; To use an output encoding conversion, mbstring's output handler must be set
7 g) ~) s' v' `+ ?" S8 w - ; otherwise output encoding conversion cannot be performed.! q% v+ W5 `: ^0 I7 _4 {! A; m
- ; http://php.net/mbstring.http-output
7 N/ {% r- j$ K3 c2 [# v - ;mbstring.http_output =
6 u: P- M9 Y" }3 h; \& ]( { - 7 K+ u1 z: p2 G( l- g
- ; enable automatic encoding translation according to, d) a l/ g% ~$ _0 P0 B
- ; mbstring.internal_encoding setting. Input chars are
( A( P) z5 H8 j4 I$ b3 V& r - ; converted to internal encoding by setting this to On.
$ Z- m' w! v( Q/ ` J5 F - ; Note: Do _not_ use automatic encoding translation for9 u2 n2 I' s, f( E& t, V
- ; portable libs/applications.
3 L! f7 c0 f; c/ M. w0 T - ; http://php.net/mbstring.encoding-translation# @4 a. Z9 O2 B) h2 Q* g q
- ;mbstring.encoding_translation = Off2 ?) Q1 \8 t" k7 h4 P5 r
- , T# s- }" o, k5 g9 X* y% x8 V/ B
- ; automatic encoding detection order.
6 y8 O3 q* s6 I( y) d - ; "auto" detect order is changed according to mbstring.language
5 R8 h7 N3 _4 L! a# s. W - ; http://php.net/mbstring.detect-order
( U+ G. x+ g5 I6 J8 X - ;mbstring.detect_order = auto
; E7 w0 T/ P4 o. A7 R r( e - - v8 |3 t" E8 D3 n) ]" H- ?4 a
- ; substitute_character used when character cannot be converted( ]" a/ W+ [; Y* y0 i
- ; one from another3 G6 \9 g" z$ N6 a c6 x
- ; http://php.net/mbstring.substitute-character6 S( _6 _! V% y: Z) i6 A+ t
- ;mbstring.substitute_character = none
$ u1 J9 i9 d: ~( R: @5 z
' l$ l- M6 x+ G* @0 P- ; overload(replace) single byte functions by mbstring functions./ V+ W w2 h; M$ _6 B
- ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),# T( |4 z: q0 {
- ; etc. Possible values are 0,1,2,4 or combination of them.( a- m; J( b' X" D% p! _: D
- ; For example, 7 for overload everything. O4 ~' ^( x( m8 g- W& b
- ; 0: No overload
7 \1 x, C9 K7 R2 j6 y3 T. X+ ] - ; 1: Overload mail() function; l2 z% z4 v6 t! s0 A) R# O5 |" b
- ; 2: Overload str*() functions" B. w. g$ K1 D& T2 ~
- ; 4: Overload ereg*() functions' l* G" f4 z6 p6 r- A/ Y
- ; http://php.net/mbstring.func-overload
6 P, x' Y, N" l - ;mbstring.func_overload = 0
. w( U `3 V) {9 x" p
: Y& w$ F8 t) P+ w5 s; P0 j- ; enable strict encoding detection.: Y! ]/ G8 k7 P& A) E$ _2 Q& V' k, w! |
- ; Default: Off8 Y, j% [% @/ M" q, Q
- ;mbstring.strict_detection = On
7 Q, u& V5 o# _5 s3 g& b
9 d& v: m* ~$ ^4 c" A- ; This directive specifies the regex pattern of content types for which mb_output_handler()5 ?$ G/ F! G5 n( }- J. J
- ; is activated.; h0 p; p# h4 z6 A- |
- ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
5 {1 `) J1 x U+ }$ @$ h - ;mbstring.http_output_conv_mimetype=
. f& `& e3 E* d1 O8 _ - 2 L; M; @; h4 j, I/ H* j/ }* r
- [gd]
+ N/ F# t( o" h5 M3 X4 t1 l. f - ; Tell the jpeg decode to ignore warnings and try to create
( V2 R2 N0 U: h- E - ; a gd image. The warning will then be displayed as notices
9 k: }/ B0 l9 Z( v - ; disabled by default* A8 A2 X+ x* T% }/ E5 r
- ; http://php.net/gd.jpeg-ignore-warning- L9 M" b1 T @
- ;gd.jpeg_ignore_warning = 0
( u; A9 H6 e/ g. C) ?$ \ - 7 Q& w$ A$ |% T& N7 |) h
- [exif]
6 q+ h1 \6 L0 D/ c! y6 ]- N - ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS." K( E1 Q- U' N6 ~' f
- ; With mbstring support this will automatically be converted into the encoding
$ x# b7 h" c: d: C - ; given by corresponding encode setting. When empty mbstring.internal_encoding
9 ?/ _, x1 o/ e5 @% R4 E - ; is used. For the decode settings you can distinguish between motorola and5 z, h+ O9 a. Q2 c! G
- ; intel byte order. A decode setting cannot be empty./ z+ B- n: b' B$ P
- ; http://php.net/exif.encode-unicode1 m R, s+ A2 a$ }
- ;exif.encode_unicode = ISO-8859-15
: x u/ {( ?* X- D- C4 f - W" P; w1 \) S, x; b, n
- ; http://php.net/exif.decode-unicode-motorola
% ^+ P& _7 C1 |3 s; \4 o - ;exif.decode_unicode_motorola = UCS-2BE
; z9 z/ `, A6 Q* {
6 r4 d' f1 t3 e2 v* k* J4 v- ; http://php.net/exif.decode-unicode-intel. |; ~6 C2 k* q: s: C' Z8 X
- ;exif.decode_unicode_intel = UCS-2LE! C7 Y5 U4 L/ G/ a. c7 D, ?
- ' h) V( ]! [7 O0 e* b8 H: e) s
- ; http://php.net/exif.encode-jis
: _# Q# [! a" Z. M1 D - ;exif.encode_jis =
7 \9 z* o$ l7 l - * D; [1 |7 A8 N# k$ A
- ; http://php.net/exif.decode-jis-motorola7 I; E% E) \" z) B0 X, g
- ;exif.decode_jis_motorola = JIS7 U4 q1 M$ W7 F3 W0 U
- # `* t3 Q: p8 }' R c
- ; http://php.net/exif.decode-jis-intel
3 S5 A+ P4 j C4 a. O9 c! P! L - ;exif.decode_jis_intel = JIS
6 p0 \# p: k0 e7 L1 T
: @5 j! L i5 B) T( X: y8 C# h- [Tidy]4 Z9 x; M ~$ Z N0 f
- ; The path to a default tidy configuration file to use when using tidy
2 |& ^+ @ i9 ? h7 z. U - ; http://php.net/tidy.default-config) S, I# `( N" v0 P# X* D
- ;tidy.default_config = /usr/local/lib/php/default.tcfg
0 z9 J3 }4 N. R
7 K/ J/ G0 N2 u- Y5 ?7 S) P- ; Should tidy clean and repair output automatically?! ~6 S+ A/ E, l' E1 O) r3 M
- ; WARNING: Do not use this option if you are generating non-html content
; `% H# r: {. m - ; such as dynamic images
. @( X$ P. s! r+ ]3 K4 F9 |8 u8 z - ; http://php.net/tidy.clean-output
( h" d n+ m& X. y8 h - tidy.clean_output = Off3 z" D. ]$ f- p: p- a7 x1 [
" w: ~$ q) N0 {$ ?5 C! o- [soap]
% e2 r; z u; y% f# ]$ f; t! ? - ; Enables or disables WSDL caching feature./ ]: _3 j( s/ X$ D6 r
- ; http://php.net/soap.wsdl-cache-enabled
) O* P2 ^2 a. [# J3 a2 e$ d2 h - soap.wsdl_cache_enabled=1
2 j4 p; D" P7 ` N+ D( h
, M* v$ c2 _# {. O$ j1 n4 g- ; Sets the directory name where SOAP extension will put cache files.
& F) ]% W, }* s# w - ; http://php.net/soap.wsdl-cache-dir
( g* B. B3 Y" L - soap.wsdl_cache_dir="/tmp"1 S/ w9 }. p4 {7 o" R, v0 o K$ P, G
- 2 f& _( m& o& |( H
- ; (time to live) Sets the number of second while cached file will be used7 B- z/ \& X4 y) o
- ; instead of original one.! U9 e) f$ t$ B* Z# J
- ; http://php.net/soap.wsdl-cache-ttl
' r) c+ }9 Z q8 \ - soap.wsdl_cache_ttl=86400
" r0 G( D" F( G3 f! ~
& z% e `' ]6 D- W- ; Sets the size of the cache limit. (Max. number of WSDL files to cache)
# f# D6 Z( s" X5 j1 V - soap.wsdl_cache_limit = 5
+ S! i- E! y6 S1 m& q' }7 W7 M j9 Q0 D - . `2 w5 F! z' |+ W$ z$ C
- [sysvshm]
# y/ n! F4 w( E& S. p - ; A default size of the shared memory segment
" |+ X: G" L" x$ e$ N9 @) X - ;sysvshm.init_mem = 100005 ^5 F2 K3 p% _2 Q& R6 m* l
# X7 ?6 s* V) [- [ldap]1 d, L3 a' `+ w5 l
- ; Sets the maximum number of open links or -1 for unlimited.6 e" X6 C/ v6 d5 s: B+ y
- ldap.max_links = -1
3 p1 i6 ^7 \: U! u; @8 L( J! d& d
8 B3 m2 x- p, S& @5 _& n5 l Q- [mcrypt]
I9 O9 L0 l ?% ]* K6 y/ o - ; For more information about mcrypt settings see http://php.net/mcrypt-module-open
+ j" k; t) D7 V" w
3 R* Z4 F4 c8 f* v) G) D- ; Directory where to load mcrypt algorithms
5 T: ]" R. ?7 f - ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)7 m) r3 A# ~5 M% ]1 R
- ;mcrypt.algorithms_dir=8 a) e2 R3 _3 V1 }. }7 k: C; _
" S$ h* [& P( n+ \0 \- ; Directory where to load mcrypt modes
: { `+ @4 y' H% k3 m) m - ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
! y+ g' t) I* x - ;mcrypt.modes_dir=! v- j) z' w: h% ?3 j/ v
- : ? Z3 U/ o) M; p# ?
- [dba]+ |0 G+ W" D8 L- s' K
- ;dba.default_handler=& c% t8 _2 e: E
* E, f& r: k4 }) e ]- [opcache]* \4 }6 D9 L; I8 X* U- ~* |" b- t
- ; Determines if Zend OPCache is enabled
# M1 H2 N% ~( J& ^# H$ F - ;opcache.enable=0& ? z$ i7 `7 f9 U! v6 @( {
- * s; [6 _; q6 T
- ; Determines if Zend OPCache is enabled for the CLI version of PHP; Y; q8 q$ A5 n/ U G
- ;opcache.enable_cli=0' a7 J2 y4 w- U7 b& O
0 E7 U9 R2 [- f0 L4 W2 P; Q- ; The OPcache shared memory storage size. X" j. S8 ~ R! R4 }5 i
- ;opcache.memory_consumption=64' ?; U' y. Y9 x, t( S
- ( Z7 v3 J" F: k1 ?8 W+ k
- ; The amount of memory for interned strings in Mbytes.
1 [4 L* a1 `8 a4 V: {5 n - ;opcache.interned_strings_buffer=4
. K* e/ O4 C7 o2 i, W
S$ d" b: f3 l9 F- ; The maximum number of keys (scripts) in the OPcache hash table.
8 Z& U' [/ X& Y: z. z - ; Only numbers between 200 and 1000000 are allowed.& x/ \- t R2 D0 ^6 H/ }
- ;opcache.max_accelerated_files=2000
+ X3 p# x" G8 K1 H
( b% A" h% m/ a- ; The maximum percentage of "wasted" memory until a restart is scheduled.
3 h, e4 N& Q. a! T3 h- x - ;opcache.max_wasted_percentage=5* L- M l! n& e
- " H% q& C3 O7 P$ B3 O
- ; When this directive is enabled, the OPcache appends the current working
! K1 B) [- A. T1 v( S/ S - ; directory to the script key, thus eliminating possible collisions between& N5 j- \! b4 f& j! B9 T6 K, h. S
- ; files with the same name (basename). Disabling the directive improves
% J: {2 y8 }* |% A - ; performance, but may break existing applications." \4 m9 K! Q7 X
- ;opcache.use_cwd=1
7 k0 U5 `) C% C7 K - ' `. Y! z. A2 `. ~
- ; When disabled, you must reset the OPcache manually or restart the
5 j X6 T( P: e3 [& K - ; webserver for changes to the filesystem to take effect.
$ x+ d1 {1 I6 r# X' { - ;opcache.validate_timestamps=1& r0 D/ \3 i5 y$ Y
- 8 B! ]0 N. h* g4 R! `
- ; How often (in seconds) to check file timestamps for changes to the shared
! P2 O! X. B( P - ; memory storage allocation. ("1" means validate once per second, but only
5 ~: M2 i. N5 C, E( G1 I1 J - ; once per request. "0" means always validate)+ C ?. k2 a+ g( z& e. n1 z/ z
- ;opcache.revalidate_freq=2
( x6 s: L! ?- Y. A3 e! L
: F. x! K4 [% n! V" B$ |- ; Enables or disables file search in include_path optimization D/ G0 h* E; s+ \4 ^6 k( g# Y. D
- ;opcache.revalidate_path=0
( O6 \$ v9 B7 {) b
: k9 c6 X0 o1 d4 L7 ]$ I- ; If disabled, all PHPDoc comments are dropped from the code to reduce the a+ r3 K* o1 f5 \; l4 \5 P$ v. K1 Y/ l
- ; size of the optimized code., ~4 `) e( V( g4 H( x+ J! C* E) V5 Q/ C
- ;opcache.save_comments=1
+ ~3 M2 N' G! Q4 ]+ L
# F N; s! ~# Q/ V5 f/ z- ; If enabled, a fast shutdown sequence is used for the accelerated code- D8 O% w0 G. t* Y
- ; Depending on the used Memory Manager this may cause some incompatibilities.: m, P9 W0 V; `: W) n4 a
- ;opcache.fast_shutdown=0
2 Q6 k! {% U9 g2 T" M - + g! t: ^2 Z- P7 B
- ; Allow file existence override (file_exists, etc.) performance feature.( z8 M+ [( B T% w
- ;opcache.enable_file_override=0
/ E: p, A, D! E9 g5 P: x; y - 7 a! \5 C G# g) P: _
- ; A bitmask, where each bit enables or disables the appropriate OPcache
( i$ v! p2 E- y5 A+ \# j) V0 W - ; passes3 m+ X( |+ ^3 \! h
- ;opcache.optimization_level=0xffffffff" i( k& S3 J( l. [( _; Q5 _" H8 Q
- $ ?0 U1 q3 E! Q' R$ k) E9 u% J
- ;opcache.inherited_hack=1
' e2 k& s0 ~; Z* _' [6 p7 J4 A4 V - ;opcache.dups_fix=0
1 v. X- i& R" N/ C+ t3 @1 `5 p - 1 w, q" A3 K0 J9 L8 G; J9 }7 }
- ; The location of the OPcache blacklist file (wildcards allowed).) R2 {: \1 J. `) @6 `
- ; Each OPcache blacklist file is a text file that holds the names of files
8 V5 Y% N6 z- L" p4 ?( a ?9 R, Q" ` - ; that should not be accelerated. The file format is to add each filename' j2 ^/ ?" ?3 Q( s8 @
- ; to a new line. The filename may be a full path or just a file prefix6 O5 b7 F/ j, n/ k
- ; (i.e., /var/www/x blacklists all the files and directories in /var/www
' ^' |& w) z/ J- Q2 h - ; that start with 'x'). Line starting with a ; are ignored (comments).% w1 B. i; K+ e0 R5 ?/ N
- ;opcache.blacklist_filename=4 X; z3 M8 ?: H' e
0 ` p' V) q0 `# F7 p- ; Allows exclusion of large files from being cached. By default all files
) u% D8 X' n3 ]. U$ e! x - ; are cached.3 W1 G9 }& Z2 n- ?: l
- ;opcache.max_file_size=09 a. s% M+ C4 p! @2 b2 B4 z7 G+ i( k W
- 8 B( w% D! ?9 T7 v; _& @, O
- ; Check the cache checksum each N requests. z! x+ I% C6 l2 z9 n" F
- ; The default value of "0" means that the checks are disabled.7 q+ ? G( C* `
- ;opcache.consistency_checks=0) _7 }9 o" \* T" A
- " M3 T- C' h; [' J$ ~8 [% J
- ; How long to wait (in seconds) for a scheduled restart to begin if the cache
& f. w: [7 K8 x0 Z6 u - ; is not being accessed.$ @$ D* ^, `! u+ M5 i. a. ~$ D& _' |
- ;opcache.force_restart_timeout=1803 `% Q: p$ Y0 O$ [) N
- 8 R, [+ l$ T$ K4 c$ [$ P
- ; OPcache error_log file name. Empty string assumes "stderr".
. T+ T: S4 }8 E; n+ i - ;opcache.error_log=
! T8 ^3 c0 A3 @4 z1 E2 N - 0 S: A. q- L! S
- ; All OPcache errors go to the Web server log., }9 E0 M5 D$ y! l4 e! ^) ~5 }
- ; By default, only fatal errors (level 0) or errors (level 1) are logged.
; O) I4 L2 p2 B0 M - ; You can also enable warnings (level 2), info messages (level 3) or
2 l$ H: \* Z# j) p! r - ; debug messages (level 4).
$ x" S0 O) \" J; h8 Z n5 J) Y0 ~ - ;opcache.log_verbosity_level=1
( T5 _3 I: m j; k5 {/ e# V - : K) G$ G4 Q& [$ P
- ; Preferred Shared Memory back-end. Leave empty and let the system decide.
3 F, g+ S. f1 U7 e9 t. j; o - ;opcache.preferred_memory_model=
: e% ^ Y$ E% {: T0 t2 U( O5 T
9 m9 l: V5 N( Q2 {- ; Protect the shared memory from unexpected writing during script execution.$ A' Z; ]% `: }* d$ T$ i6 q
- ; Useful for internal debugging only.
- a; _% P9 _; T; ]+ [ - ;opcache.protect_memory=0
- C5 E9 {2 r0 e/ c
3 }: m% P' n5 \% y- ; Allows calling OPcache API functions only from PHP scripts which path is. Q" h) Z: u' t% A8 W3 L: x( Z$ b
- ; started from specified string. The default "" means no restriction
5 K* _" G. w7 X8 {6 w# J3 T - ;opcache.restrict_api=, Y1 c) s+ E0 \$ `8 ~: {
- # x! {8 [6 ?& f* u! n [ B
- ; Mapping base of shared memory segments (for Windows only). All the PHP
- i- S" P% Q8 z: D1 E - ; processes have to map shared memory into the same address space. This
/ g( A7 k# g; `( A. ` - ; directive allows to manually fix the "Unable to reattach to base address": {3 {7 h8 ]) P. ^7 F0 n; R, O
- ; errors.
# H$ S* J$ ~) ?8 T2 H) @' N, F+ E' S - ;opcache.mmap_base=
4 Y' Y9 f8 o9 J. k3 A( y5 B - - R n$ U# \. c( w0 m
- ; Enables and sets the second level cache directory.
2 r6 l! S- f$ H$ U - ; It should improve performance when SHM memory is full, at server restart or
4 h; l% |' k5 C7 S: ^- D - ; SHM reset. The default "" disables file based caching." R# T* z: S) s. W
- ;opcache.file_cache=
0 X) j2 c% `9 V- _
; w3 s2 w4 q; p: V. Z- h- ; Enables or disables opcode caching in shared memory." E" g- U' p* U2 b3 Y
- ;opcache.file_cache_only=04 E5 B s: D* x. S1 K7 i8 y
- ' J: v* } T* P. A/ O5 M
- ; Enables or disables checksum validation when script loaded from file cache.
" e- e+ H4 Z) I- [ - ;opcache.file_cache_consistency_checks=1' Y& S" S2 \& U. _0 Y
- 6 S0 _) ]1 x: ]! R8 R; x
- ; Implies opcache.file_cache_only=1 for a certain process that failed to2 Q! _4 N1 I; w5 ?
- ; reattach to the shared memory (for Windows only). Explicitly enabled file }* v" K/ R4 `. w6 ?
- ; cache is required.
" N+ h, J8 t; h; m! k4 t - ;opcache.file_cache_fallback=18 W3 S% F" {% B6 z. m
# t" m6 V5 K+ h( N! a/ P- ; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
( ]3 f9 a$ G% }, r% F - ; This should improve performance, but requires appropriate OS configuration.& h$ c1 @/ |% V8 G1 R: H
- ;opcache.huge_code_pages=1
9 _( P1 n a. z5 ^5 R
: U" O3 p! ?7 [' F$ }# [- ; Validate cached file permissions.
( f* t+ R, m2 M$ z- A: ~0 E9 a5 d1 f - ; opcache.validate_permission=0
# z& }1 e/ e/ Q, @2 h$ I - & s# e d0 M0 w: o6 h0 k
- ; Prevent name collisions in chroot'ed environment.
' c; p9 U* W$ x) |( N- R4 }, P1 z - ; opcache.validate_root=0
) k; e& V0 w0 Z T! w9 ~
( X& l/ U+ t3 E2 Z8 I, E) z- [curl]. t) ^; \; r6 W+ d2 |! f; r
- ; A default value for the CURLOPT_CAINFO option. This is required to be an
2 Y0 f0 O, [' i - ; absolute path.
1 j4 _. [1 w! Z7 L$ ~4 O - curl.cainfo = /etc/pki/tls/certs/ca-bundle.crt4 x0 ?; n; a0 B8 K9 T6 |$ a
- 3 w6 f4 R \/ r8 C+ X n0 W, G
- [openssl]" `, y% T" J+ I# g! F7 J2 X
- ; The location of a Certificate Authority (CA) file on the local filesystem
: }+ I v/ Q, D! g5 l; O& O - ; to use when verifying the identity of SSL/TLS peers. Most users should
. `/ v: ?1 r D5 ]( v4 n - ; not specify a value for this directive as PHP will attempt to use the
+ T5 W2 b5 N1 t, [2 @% c, o7 S- ` - ; OS-managed cert stores in its absence. If specified, this value may still
2 F* _- `/ }. p6 a" c - ; be overridden on a per-stream basis via the "cafile" SSL stream context/ m, X2 Y2 `: {# O5 n. o
- ; option. `- N+ i3 S" }: t' W
- openssl.cafile=/etc/pki/tls/certs/ca-bundle.crt, Z6 Y' B3 `, E! ?' |) ]) p/ U1 @5 W
' g1 m8 M/ }- U/ ~' j: U; x- ; If openssl.cafile is not specified or if the CA file is not found, the
- s; |! L D; U' B - ; directory pointed to by openssl.capath is searched for a suitable
3 |1 Y2 P8 J8 ? - ; certificate. This value must be a correctly hashed certificate directory.
7 r. f$ b# X, v0 W/ D) D - ; Most users should not specify a value for this directive as PHP will
. J/ c6 b6 p0 B9 i; n8 F1 G* S - ; attempt to use the OS-managed cert stores in its absence. If specified,' g; u% B' L9 R5 {1 a/ B9 b, d( M
- ; this value may still be overridden on a per-stream basis via the "capath"2 m7 B0 ?! E& D
- ; SSL stream context option.
/ a) ~ H' ~8 X; Z* T - ;openssl.capath=
5 F9 _0 j0 r. T" { - % C8 `7 n, `+ v* I0 p& F
- ; Local Variables:
5 O, B5 Q" I8 }0 @7 X4 x9 J% m0 Q - ; tab-width: 4
5 T- O# i- p) O2 S3 Z8 m - ; End:2 I) P% ]- D) e$ t
$ o$ D# o2 Q: Q5 c! h4 V% d- ;eaccelerator% R9 c( |0 N2 P N8 N v
- 8 M& v; @3 O1 a7 s! d
- ;ionCube
! G: V* X; K; R2 Z4 c
* Z& I; r7 z- m+ l- ;opcache* H" O; k" ] S7 \ B5 A
- ) H% z8 x6 k1 a6 ~ j5 G) [' X
- [Zend ZendGuard Loader]
$ o! G+ u& A) C: A ^ - ;php7 do not support zendguardloader @Sep.2015,after support you can uncomment the following line.0 A/ T" f9 y% H5 c1 s% ?
- ;zend_extension=/usr/local/zend/php70/ZendGuardLoader.so' I! n7 w2 t& d5 f
- ;zend_loader.enable=1& B+ Y* {/ [. i0 {; N. `+ @0 E% }
- ;zend_loader.disable_licensing=08 V# _: o! S3 x1 D0 Y/ V+ Y
- ;zend_loader.obfuscation_level_support=3- Q1 J7 W5 g- c
- ;zend_loader.license_path=4 P" m) y# U& A8 b% p2 ~
t# G7 T* m; h" z7 `% Z$ N2 H) G- ;xcache* B f3 J4 S$ W' [
- ' | x8 q" d( g# E/ k! e- m, n7 O
复制代码 . }0 Z3 F9 a1 w: o T$ r. I4 `7 N
' j# _7 S1 ]$ z* X5 t* m' _! R
6 S0 S% D. X# u! B8 o$ ^8 [
: C2 k/ G) Y, E) s" I$ E, x( j- q) K! w
7 |0 y) _6 O# D
# \1 y" }) C3 T$ w8 t; C kPHP5.6版本原始设置
% V, `9 v, L; q' ~. n7 {9 B( Y& o, I B7 t4 r
- [PHP]& q. ]$ j9 X; X3 }% r7 d, C F
: G1 R+ H2 J4 Q7 b( S+ A( ?- ;;;;;;;;;;;;;;;;;;;
7 F9 J) W8 _' I' H0 l2 N- S5 v - ; About php.ini ;/ f) b% M* ~" F; g) b* q. O
- ;;;;;;;;;;;;;;;;;;;: N% \8 U7 n( G9 ~3 }& Y
- ; PHP's initialization file, generally called php.ini, is responsible for/ B' V( s6 X3 f
- ; configuring many of the aspects of PHP's behavior.
2 ?7 F- G! t1 a8 p - . d& \; v7 I3 |- |" D0 x! E
- ; PHP attempts to find and load this configuration from a number of locations.
( W9 l O1 m+ {6 e$ \% M4 Q2 O - ; The following is a summary of its search order:. L% X: Y4 E( L
- ; 1. SAPI module specific location." G/ x- \1 L1 d8 P: T9 s
- ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
8 m1 S ?) B6 T/ ^6 R3 _4 S - ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
3 Z2 h7 O- T* _6 i2 o" A - ; 4. Current working directory (except CLI). k% L( r% A6 Z& f K
- ; 5. The web server's directory (for SAPI modules), or directory of PHP4 S2 G( i: r4 K7 o1 A; n, W" J
- ; (otherwise in Windows)
( L ]( p: d p* \ - ; 6. The directory from the --with-config-file-path compile time option, or the
$ V" X+ V% }7 ^4 { - ; Windows directory (C:\windows or C:\winnt)- j% E0 d9 V# E9 c! V1 X3 M
- ; See the PHP docs for more specific information.% g; e, e) {/ V/ P4 c0 q1 M
- ; http://php.net/configuration.file
7 g/ y7 b; r3 O, x3 t - $ h& O0 N, `2 k3 A) c3 ~
- ; The syntax of the file is extremely simple. Whitespace and lines+ N, r& N" b( S% n' _4 r& a- n
- ; beginning with a semicolon are silently ignored (as you probably guessed).! N, B- C: l4 C- M! j
- ; Section headers (e.g. [Foo]) are also silently ignored, even though
! o$ R# W L* t$ q6 \ - ; they might mean something in the future.9 x3 t+ H! ?5 `. E. ]6 E
8 u# k+ X" ^9 G* l* O7 u' B$ L- ; Directives following the section heading [PATH=/www/mysite] only
0 T* i: o2 H1 _- g- T - ; apply to PHP files in the /www/mysite directory. Directives
8 I$ g+ A& A Q4 r/ F( m3 k% P% X - ; following the section heading [HOST=www.example.com] only apply to
$ [3 T7 R6 @& j7 ^. F) K - ; PHP files served from www.example.com. Directives set in these
- ?# @7 H: a2 d% E, S v# s - ; special sections cannot be overridden by user-defined INI files or
' v' ~6 y( \" Z f# X: Z - ; at runtime. Currently, [PATH=] and [HOST=] sections only work under8 Z. A/ {8 L5 f( p" `
- ; CGI/FastCGI.
& x7 N1 f* `4 U- b+ i3 e) u# X - ; http://php.net/ini.sections
( b G; ^, y( U, o
& H- E$ |6 Q$ [$ Q" [( |- ; Directives are specified using the following syntax:- r9 {7 E! a: x/ o$ H
- ; directive = value2 j7 F7 v0 _5 {
- ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.2 U, n9 v% e8 c2 e1 H+ T
- ; Directives are variables used to configure PHP or PHP extensions.+ _- G8 e9 T/ w" ~) G* f) y. T- S
- ; There is no name validation. If PHP can't find an expected
% ]) F5 r! c. [+ `2 [4 f+ [ F - ; directive because it is not set or is mistyped, a default value will be used.; x( k6 F! k/ ?7 g1 W
4 g' f8 a) a$ V( g: \6 W/ L- ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one% @- s7 A! U" E4 C' K6 N: m
- ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression/ i$ g1 N h% X# r( V. \+ M$ B
- ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
! C' m( \& [7 d- J1 T - ; previously set variable or directive (e.g. ${foo})
' N7 N. w7 E) y* z; p* u" G - ) h4 G, @/ r. e* R8 j& I
- ; Expressions in the INI file are limited to bitwise operators and parentheses:! @8 s8 a, T; v0 u
- ; | bitwise OR
5 o) _( Q7 E2 r2 O/ D t - ; ^ bitwise XOR( G" _* A: [. v" @
- ; & bitwise AND( P! W+ U3 Y7 B5 ~2 I6 Y
- ; ~ bitwise NOT
8 S! h3 ~ b U/ w5 U, w/ l+ @ - ; ! boolean NOT6 O) H3 P v1 J( ^
3 [5 @' t3 [* {$ [: C D+ w- ; Boolean flags can be turned on using the values 1, On, True or Yes.
) V2 h7 o2 q3 a6 \ - ; They can be turned off using the values 0, Off, False or No.) |9 ~1 R8 N1 `* d4 p
- : z0 u1 H& `. V+ \
- ; An empty string can be denoted by simply not writing anything after the equal
8 u/ ?8 W) r% h, b; _ - ; sign, or by using the None keyword:2 v) k k6 i* X1 I$ Q
- $ X% Y: D {+ S; M. Q! o& _
- ; foo = ; sets foo to an empty string4 r$ ?% C9 `2 y# p
- ; foo = None ; sets foo to an empty string2 M8 c& w* Y+ j, ?, z
- ; foo = "None" ; sets foo to the string 'None'
- [& n2 \* i" p- S% r; R' z/ _; } - , {& ?( h# L: `- G8 [
- ; If you use constants in your value, and these constants belong to a. p& |$ q; U7 f0 S
- ; dynamically loaded extension (either a PHP extension or a Zend extension),
; N1 K8 w' d" h. E. v - ; you may only use these constants *after* the line that loads the extension.( z. k" S- Q0 ^1 e) H
- " e0 P6 C8 }: v! p! P4 V& P
- ;;;;;;;;;;;;;;;;;;; v- n4 V; F2 J
- ; About this file ;
! ~% z% u, o6 E0 ~ - ;;;;;;;;;;;;;;;;;;;1 c6 ^6 M5 |% Z# S/ S* H
- ; PHP comes packaged with two INI files. One that is recommended to be used
+ |, Z2 F4 ~, ^+ X - ; in production environments and one that is recommended to be used in% V2 A/ |: d" V$ L; H4 Y9 Q ^
- ; development environments.# M M5 E" A! P* O% G
- $ G; O, |% B% I; C/ t' i3 H, Y9 S
- ; php.ini-production contains settings which hold security, performance and
W% d; n6 h# x6 G+ p - ; best practices at its core. But please be aware, these settings may break+ h, \$ _) I, F6 M
- ; compatibility with older or less security conscience applications. We
) @% O8 _' g% S; K2 C8 c - ; recommending using the production ini in production and testing environments.6 C, r7 S: ]6 H h; X( _1 o
F, a2 C2 ^: b6 B. S; ^- r) _- ; php.ini-development is very similar to its production variant, except it is
" Z6 E2 z+ l2 K0 _- R - ; much more verbose when it comes to errors. We recommend using the: z2 o8 g+ z$ N+ E& s3 d
- ; development version only in development environments, as errors shown to
5 b7 c4 c! U# z/ o3 p5 ], q' l! y v - ; application users can inadvertently leak otherwise secure information.
6 N- f* n e6 m. \9 R - . P& z* z% c! P, H
- ; This is php.ini-production INI file.
* Q" g: _) L# ]! @: m# K
- q% u- |" T& B% g1 X1 |- ;;;;;;;;;;;;;;;;;;;! O( A5 y4 w: Z E/ |! k4 \% w8 c
- ; Quick Reference ;
- q3 h$ x1 F: J7 _: C3 J - ;;;;;;;;;;;;;;;;;;;
$ b. C/ V: C9 Y6 u) d3 Q - ; The following are all the settings which are different in either the production
1 _, `7 p/ s& g% P' ~, K - ; or development versions of the INIs with respect to PHP's default behavior.
2 K) b: x' T8 r8 A1 y; s - ; Please see the actual settings later in the document for more details as to why( o* c: M% l$ ^1 X! f6 `
- ; we recommend these changes in PHP's behavior.3 W; T# v/ S" W& i) r' \2 M
# e7 s2 l* ?8 l; |: B E! ?! U- ; display_errors- r% w, ^+ Q6 \ X
- ; Default Value: On8 P6 a/ {: S# ]" n. D9 @
- ; Development Value: On! `& G" a! s0 N, H2 |9 P9 o# v0 _
- ; Production Value: Off7 L& H& f) M0 P- t0 [; v
}- h I* U- z$ Z+ z- ; display_startup_errors: B+ l9 a C& Q4 n7 S7 Q
- ; Default Value: Off
# g& ]( { Y% [5 @; `' o6 u - ; Development Value: On. I& e' u% i( R( d- {& `7 u# U$ j
- ; Production Value: Off
$ S4 a: }' X. {$ B) N
% ^. S; O, ?3 C1 H5 }& `% W, M- ; error_reporting/ n# D& u! a, c Z
- ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
" n' i" K0 i( s6 C+ j& F - ; Development Value: E_ALL
& |( v4 q" H, A# ]: B6 S - ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT3 C9 m0 \2 e8 u J" ^! e7 A
5 C! U1 ^ g7 p. A+ s" O; C- ; html_errors
% ]1 w* S* l4 o- t - ; Default Value: On
9 z; ~" F: m S' D! Q - ; Development Value: On2 \# p8 R g1 s6 m, _; b
- ; Production value: On8 k1 P1 f7 X6 r! t, V
- 5 n# I% w. }( @/ I6 j7 x
- ; log_errors
( t/ d7 a- g. j/ A c/ z - ; Default Value: Off4 N' x8 d1 Z8 n6 f2 s0 ~! r0 e
- ; Development Value: On
/ P( Q) D9 X" _6 k/ X7 L - ; Production Value: On
3 _8 J6 ?( g6 Z, C, ?$ {4 p - & t) N* V. c6 X& M5 ]: I
- ; max_input_time
2 m& J% P% {( ]" E; D8 \( ~ - ; Default Value: -1 (Unlimited)8 z8 y* r$ w; z& ~/ B4 x
- ; Development Value: 60 (60 seconds)$ j+ [6 d) f j* ^6 Y* u3 e
- ; Production Value: 60 (60 seconds)
, `/ ^" b& F" }" M - 1 ?- Y2 L! Y! n7 C
- ; output_buffering
7 i3 a# D! n; \9 l - ; Default Value: Off# a" K$ [7 r+ p. @7 D) i; d& l/ B
- ; Development Value: 40965 [3 a% g* [4 M" h' ~& h& j
- ; Production Value: 4096! i+ p& I+ v \: U, h4 G6 [$ z; J
* v, n6 l4 R3 T: Y2 x- ; register_argc_argv
' K# B g3 B+ }- I4 `& E" ~9 P - ; Default Value: On, s! W- j/ f& O9 c
- ; Development Value: Off+ W9 ~9 ]0 H0 {3 U
- ; Production Value: Off
6 s8 I4 N4 m( I
6 O+ D+ F1 h! o" o" G- ; request_order
3 X8 O8 q) U; U( j6 d O8 w - ; Default Value: None
4 Y! B& L5 s: p( X - ; Development Value: "GP"
3 }- Z' U; A& ^5 x" ? - ; Production Value: "GP"2 K$ i* A: d3 c; @/ h0 G: _( R: }
- ) e2 l0 u. m( t* f* m
- ; session.gc_divisor
) G6 B! {+ T# I - ; Default Value: 100
/ u! h" r4 i9 Q3 E$ W( ] - ; Development Value: 1000
; C( F9 D; y( Y8 a& j( n/ e; J/ z - ; Production Value: 1000& B2 _9 @, f9 }- }' ?- G6 p0 m8 ]
' D6 z0 y3 I( m$ D5 J- ; session.hash_bits_per_character
; W4 ]1 K3 m' G. ~* B4 M - ; Default Value: 42 S* V! @9 w) ~) t' {7 H }* e; v, j) ~
- ; Development Value: 5" O! D3 Y5 v3 e7 e+ a! {
- ; Production Value: 5
8 t% `6 b1 Z: {
/ O0 G* M" y+ b! d' s0 ~" j- ; short_open_tag8 [- \ q# ?' Q8 U7 r. T- j0 K% u3 A
- ; Default Value: On6 |7 @- b8 |& p6 l8 C& g; T$ X
- ; Development Value: Off) D1 |% P# W L8 g$ {1 J0 e5 ^
- ; Production Value: Off
' k0 K2 M% r5 N; {1 U
6 E- c, ?- e" D0 J, B- ; track_errors! j( ^' W. P8 ?
- ; Default Value: Off
5 h' a) k- t! T# P - ; Development Value: On. ?' Q. W1 e6 ]8 k( e7 P* j7 W
- ; Production Value: Off
# ?8 d+ h# U: M; q6 K
$ \0 n M/ i& P8 t5 T. N. G- ; url_rewriter.tags
+ h: @' s% ~0 e# Q! f$ r( @ j - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
6 y3 W7 M: S& l% G - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; F# z% I) r4 { s8 e% O* E: X
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
, V; Y5 t1 N& k# j5 e3 X3 g, U - ( n, q3 [% ?+ L3 p* y! P7 `
- ; variables_order6 @) U \6 B; ~5 [5 p" v
- ; Default Value: "EGPCS"
5 D0 A3 \7 S; `. C$ B - ; Development Value: "GPCS": K7 x& e$ r0 y% d, K; [) x7 T
- ; Production Value: "GPCS"+ A% F1 ^! F- q, t1 K% e! J1 O7 G
- * l" A$ l; } q |- X- b
- ;;;;;;;;;;;;;;;;;;;;5 u& u7 P! A. I
- ; php.ini Options ;/ b7 M& [6 v* M3 s' F! y, H) ]
- ;;;;;;;;;;;;;;;;;;;;
. l7 w% i S2 T/ ~ - ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"( a9 O; o" a; l) O, a
- ;user_ini.filename = ".user.ini"
% I0 X' k, W( [: Y2 R - 3 p. p- Y: G& T$ E+ C$ {5 F
- ; To disable this feature set this option to empty value% P! \6 ?' @% l) V2 b1 `
- ;user_ini.filename =
* z+ |. l0 B3 p7 P! B- d - - L K/ ?7 Y; z7 j, s% S( }: U8 g s) ^
- ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
) J! T) x7 `/ u% @, C0 Y& n2 O - ;user_ini.cache_ttl = 300$ r6 X# Q% x7 Z/ ]: X
- 6 X. }& ~% W+ Z# r
- ;;;;;;;;;;;;;;;;;;;;
" `+ }. z3 k) ^; ]2 i - ; Language Options ;$ F+ C) Q* B' _/ Q' |
- ;;;;;;;;;;;;;;;;;;;;
6 @8 Z. @5 M1 S0 A5 ~
" w1 P% j2 h, I/ p3 B4 F7 a* l- ; Enable the PHP scripting language engine under Apache.7 g+ s; p& @7 a. w" t3 \: H9 y
- ; http://php.net/engine W0 L9 `" m% L5 n3 F( W1 s! V
- engine = On
2 S5 j/ ~3 }0 \
( b* q) @5 V1 [; k- ; This directive determines whether or not PHP will recognize code between
% _% E# D/ h2 }0 ? - ; <? and ?> tags as PHP source which should be processed as such. It is2 Q+ m2 ^" v! c( z0 C- l
- ; generally recommended that <?php and ?> should be used and that this feature
, M& h" A( E+ Z4 c0 n, s; b - ; should be disabled, as enabling it may result in issues when generating XML2 f! x# @0 |. X* |" ]# q/ {; g- ~
- ; documents, however this remains supported for backward compatibility reasons.' H- a$ @. C5 x- D8 T/ ]) g
- ; Note that this directive does not control the <?= shorthand tag, which can be) w7 I% D. N! q6 d! ]
- ; used regardless of this directive.
" v1 |% j k5 Z3 y3 e7 h2 T - ; Default Value: On% ^$ N, J/ M6 E9 h
- ; Development Value: Off
& N" b& J; v) \3 k2 F* F7 K4 ~ - ; Production Value: Off
. O# S3 _5 D. s2 r7 ^ - ; http://php.net/short-open-tag
# L& A0 _" q/ C- }) [) a - short_open_tag = On
h+ z) u, Z; I! a7 J - , _5 T4 `7 K6 b. V' @+ Y8 q
- ; Allow ASP-style <% %> tags.
* |: D9 b! ^0 }4 b- }5 P( W - ; http://php.net/asp-tags
1 |3 C0 V( t5 F1 m - asp_tags = Off$ t; T, l& g; o) n# @
- l+ f( V. G" u S$ e6 `- ; The number of significant digits displayed in floating point numbers.
$ n% }* L q% c0 l+ I" } - ; http://php.net/precision
2 \! v/ ?2 N8 z% |; c; d3 H( V6 b - precision = 142 d+ d% k6 C$ c
: F9 Q+ k0 p) Q9 g, P- ; Output buffering is a mechanism for controlling how much output data. D6 Z* V+ |$ A q8 B" T
- ; (excluding headers and cookies) PHP should keep internally before pushing that
# c& T! N! J6 v! M, p) e7 ?# Q - ; data to the client. If your application's output exceeds this setting, PHP
, G- d- ?9 \2 m2 L - ; will send that data in chunks of roughly the size you specify.
* R* A& \6 d: t" B9 ]5 S - ; Turning on this setting and managing its maximum buffer size can yield some/ u; D: v( T9 Q5 t4 }, H! r1 M
- ; interesting side-effects depending on your application and web server., F& y( @* r. o) s% O$ P! O
- ; You may be able to send headers and cookies after you've already sent output' d, e4 n; d! K3 u7 ^+ Z
- ; through print or echo. You also may see performance benefits if your server is
j( M; c& K Z/ W# u, m - ; emitting less packets due to buffered output versus PHP streaming the output
; Y& O+ _0 g# U* q" c; P - ; as it gets it. On production servers, 4096 bytes is a good setting for performance! H6 u% @2 o( e4 b7 V8 R8 r' f
- ; reasons.
6 k0 ]- S& J6 l% r( M - ; Note: Output buffering can also be controlled via Output Buffering Control* @4 q, b! v8 w
- ; functions.9 K" H% T2 F1 l2 A- v+ r, C
- ; Possible Values:. M$ k. e. N M" [- m' w8 ]
- ; On = Enabled and buffer is unlimited. (Use with caution)
- o" Z' u0 z, K7 {; |) G9 e. w - ; Off = Disabled8 m- ] x9 z& A/ k! Z& o
- ; Integer = Enables the buffer and sets its maximum size in bytes.
3 x6 {4 z* a6 Z- K% r3 Y6 j6 p - ; Note: This directive is hardcoded to Off for the CLI SAPI( |+ I/ u! _) w; X, E
- ; Default Value: Off0 B8 z6 j8 I5 T. i
- ; Development Value: 4096. N4 a( t* x8 W+ W: z' j; S* K
- ; Production Value: 40962 N/ d* j8 T8 B% {' B: |
- ; http://php.net/output-buffering
1 M; u: A9 l# g5 D+ { - output_buffering = 4096
& Y/ i( B' j* i8 u) C/ K3 C/ V) D2 i! Z
# a( z7 P8 H/ P7 l) e L; l- ; You can redirect all of the output of your scripts to a function. For
' w4 Q2 h0 U# A8 S4 Z, v) b - ; example, if you set output_handler to "mb_output_handler", character
~3 U& Z0 l& C' L - ; encoding will be transparently converted to the specified encoding.% q+ @' w- L2 S4 c' q
- ; Setting any output handler automatically turns on output buffering.
" @( N0 n1 C+ y4 G - ; Note: People who wrote portable scripts should not depend on this ini$ z% \2 c0 r8 [; j. L+ Y
- ; directive. Instead, explicitly set the output handler using ob_start().
$ q' i3 c, p" A1 n" D; C4 a - ; Using this ini directive may cause problems unless you know what script
/ K9 U) u; X- q4 w) P: X - ; is doing.
( W2 ^" `0 h, m - ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"& _5 H' I- V2 L
- ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".; N( F0 c- Z( N; d) a+ P& k$ s/ j
- ; Note: output_handler must be empty if this is set 'On' !!!!" ]' f7 w8 e' H* r4 S* O" r
- ; Instead you must use zlib.output_handler.0 m0 T% k* z. w8 E
- ; http://php.net/output-handler: @& U9 Z0 G5 \, Q
- ;output_handler =) u$ k' W; G6 P6 d& a, v' p: i
- 4 y7 s1 D& H# R6 }* E# L: l2 q+ {
- ; Transparent output compression using the zlib library# h+ O4 H4 x* S7 A5 X) a) v7 P5 o
- ; Valid values for this option are 'off', 'on', or a specific buffer size5 W; e; v- z, R5 o8 H) {1 ?
- ; to be used for compression (default is 4KB)
* r: f. [5 Y& K+ ]4 V* j9 ? - ; Note: Resulting chunk size may vary due to nature of compression. PHP
) V' \: `. R$ ~) {& e5 G - ; outputs chunks that are few hundreds bytes each as a result of
8 Y2 i- y j% D6 w - ; compression. If you prefer a larger chunk size for better
7 s3 R- B' a: b# U' ] - ; performance, enable output_buffering in addition.
+ f3 p4 @2 b+ w5 n" n1 W0 a, e; T3 ` - ; Note: You need to use zlib.output_handler instead of the standard5 @7 l7 i! s! }4 D6 g |1 `
- ; output_handler, or otherwise the output will be corrupted.& f. U' S. \2 Y( | V. a
- ; http://php.net/zlib.output-compression7 B1 F; O5 `4 v/ [. ^9 g
- zlib.output_compression = Off; J* }* F2 m/ e- V; y1 F9 W
; T) M' I! v) O! z ^* @5 z- ; http://php.net/zlib.output-compression-level% `0 R3 q" \+ z$ u9 y" T/ k" _4 @
- ;zlib.output_compression_level = -1' l k0 z/ |) h: R
- 6 J( O9 C- D/ G2 g7 t% b6 ^; [
- ; You cannot specify additional output handlers if zlib.output_compression
# a3 t9 \7 x5 L3 t2 ^# c - ; is activated here. This setting does the same as output_handler but in/ r6 l( Q" X( i2 M. F/ t
- ; a different order." r0 ~7 r& G4 A: W; W' C$ j5 H1 {
- ; http://php.net/zlib.output-handler$ f( @" T$ p, K) ]8 j3 ?
- ;zlib.output_handler =% z+ |$ R: B" [1 \2 S1 J
9 w4 c' |* g- j- ; Implicit flush tells PHP to tell the output layer to flush itself3 _5 J5 P4 }, p! M& _
- ; automatically after every output block. This is equivalent to calling the
2 l' V0 o# m) ~, u$ r5 H' P( y) X - ; PHP function flush() after each and every call to print() or echo() and each
0 i4 b2 S& D9 S/ W& l* c h - ; and every HTML block. Turning this option on has serious performance
( g) `6 H) [" G$ ^ o8 [ - ; implications and is generally recommended for debugging purposes only.* m/ _4 B U6 A9 {1 P/ l+ J1 y
- ; http://php.net/implicit-flush
6 ]! u8 w; ~/ G( B - ; Note: This directive is hardcoded to On for the CLI SAPI' V9 ]; Z& n6 Z' c% P5 ^
- implicit_flush = Off
: P+ H' d s( k8 {* E/ Z - " K+ N1 k$ f; {& p8 R' d
- ; The unserialize callback function will be called (with the undefined class'
1 A& a5 N4 n, Z* B: K; Y, | - ; name as parameter), if the unserializer finds an undefined class( C' |4 A+ H5 I9 k
- ; which should be instantiated. A warning appears if the specified function is9 v' ^ p( ?# Q/ [6 F1 ?! x6 x
- ; not defined, or if the function doesn't include/implement the missing class.+ v: D2 g F! U1 @, o. T$ ~
- ; So only set this entry, if you really want to implement such a
4 A, _0 u& J! C; t- | - ; callback-function.7 w6 h* x) l4 u+ O& a) n1 Y
- unserialize_callback_func =& i) Q) q4 R3 } m: l# f5 A+ u
/ T" _( r3 }7 |" ^8 K- ; When floats & doubles are serialized store serialize_precision significant
6 Z$ Z6 a& }9 ^1 K9 K" K( v) | - ; digits after the floating point. The default value ensures that when floats. l; g& h& {" b0 H
- ; are decoded with unserialize, the data will remain the same.+ B( I0 l6 |9 a% Q( c
- serialize_precision = 17
0 }! G1 |# t# L6 ]& P( S - `, Y% P+ v) I, O* G, s" F9 t' s
- ; open_basedir, if set, limits all file operations to the defined directory) L# ~3 \5 s/ O% p: t3 a
- ; and below. This directive makes most sense if used in a per-directory
3 X6 J+ I7 d ?. g1 Y/ a - ; or per-virtualhost web server configuration file.5 X, N% u& h# u4 @9 z! J) h$ e& p
- ; http://php.net/open-basedir
K1 E, K: H2 }+ r - ;open_basedir =
/ x; A; P( l& g2 j: B - . j- Q* a( a7 F( `5 q
- ; This directive allows you to disable certain functions for security reasons. P6 g; z8 T4 j
- ; It receives a comma-delimited list of function names.
4 v5 d% b9 l+ o! }5 o - ; http://php.net/disable-functions, R6 A, c8 d/ {; }: ?
- disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
f% a+ z0 ?0 }! j, l - ) v f+ j: I* o8 p' M) C d1 c: g
- ; This directive allows you to disable certain classes for security reasons.
, \$ M6 W/ q5 U' X# z7 U( n - ; It receives a comma-delimited list of class names.
0 M0 y0 w) F7 ?6 P - ; http://php.net/disable-classes) E6 g0 {6 o" H1 z! [
- disable_classes =
. [9 }& ^4 w0 f4 A1 m: u/ o' y - " K8 c- y& \6 B5 O
- ; Colors for Syntax Highlighting mode. Anything that's acceptable in3 m/ w# @ |, H% c; O
- ; <span style="color: ???????"> would work.) c7 {- x) L1 ^& _- m$ k8 h
- ; http://php.net/syntax-highlighting
$ g2 P. H+ w( l; C6 p4 w/ {, m - ;highlight.string = #DD00003 i8 N8 P1 a- r+ s' r" P
- ;highlight.comment = #FF9900
W% t* C( n8 Q. c8 s- t' l# w - ;highlight.keyword = #0077000 b L0 m) `7 [ V( _* O+ C
- ;highlight.default = #0000BB% {2 L! M9 j( z% G$ l. d H! T8 C4 [
- ;highlight.html = #000000
8 f- G5 ~: a" H d9 c
; C& W& R; U R4 C- ; If enabled, the request will be allowed to complete even if the user aborts
% p$ Y) `) E/ z# I - ; the request. Consider enabling it if executing long requests, which may end up* N0 D6 t* b) J% R) j
- ; being interrupted by the user or a browser timing out. PHP's default behavior
8 s$ ^* V5 ^0 r2 u - ; is to disable this feature.
: ?. R7 a6 Z5 m - ; http://php.net/ignore-user-abort! H) B! `5 s5 h+ [
- ;ignore_user_abort = On* C" o' b! |8 U: S/ A: u# J; Z' R0 [
1 h: t) O2 I8 ]; z8 X- ; Determines the size of the realpath cache to be used by PHP. This value should7 U3 q1 k" O7 p8 S, F! ]9 D, I( ?
- ; be increased on systems where PHP opens many files to reflect the quantity of! ]1 p9 c4 u( X# Q# |
- ; the file operations performed.
( I2 ]- ?" X4 |! z - ; http://php.net/realpath-cache-size9 y S# Y- N9 l# v5 \
- ;realpath_cache_size = 16k$ A, |- n* k9 h' f; r. a4 W
- ( x! ]$ G6 a% t4 a5 K' k
- ; Duration of time, in seconds for which to cache realpath information for a given
/ D" B5 a/ q$ u4 s* ~ - ; file or directory. For systems with rarely changing files, consider increasing this
6 k3 M8 u3 B! F7 Q - ; value.* _ F/ m# p1 }: U/ y3 J" T! H
- ; http://php.net/realpath-cache-ttl
& A7 ?$ |* q/ E - ;realpath_cache_ttl = 120
/ Z- I3 Z8 e7 `7 _1 R - 3 P6 P0 a \# O( f6 z: i, P
- ; Enables or disables the circular reference collector.
6 M' @- b: ], x- G - ; http://php.net/zend.enable-gc8 R; E) l* k9 L8 L: V5 }
- zend.enable_gc = On
; b2 m, t$ W- ]* j3 L3 m
: T# {5 z+ m# _- ; If enabled, scripts may be written in encodings that are incompatible with& o! t+ O: ]2 Z6 h6 `
- ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
% g5 Y$ k- Z: b0 z - ; encodings. To use this feature, mbstring extension must be enabled.
# ~ v/ l' q3 d. N/ g - ; Default: Off9 Y; Q3 b' {# M* A2 \9 l
- ;zend.multibyte = Off5 ` j. s( d4 L9 L, C. Q/ [
' N: e4 M% L! [: I! W- ; Allows to set the default encoding for the scripts. This value will be used0 {% a# X( Z |' a
- ; unless "declare(encoding=...)" directive appears at the top of the script.
3 M+ b) n" T* p* `/ a# l8 s' m - ; Only affects if zend.multibyte is set.
5 @8 g% l' p+ @& m. W5 b! V - ; Default: ""3 F% f' m! Z0 C: T! N* F
- ;zend.script_encoding =
" W& ], d3 l' P E8 x - 0 J' P& b, u4 q4 I
- ;;;;;;;;;;;;;;;;;$ ?- |' B+ K8 f% J T
- ; Miscellaneous ;! d1 w% j1 ~& u l
- ;;;;;;;;;;;;;;;;;, z+ H* z. B, T1 [- E
- 5 s. l) x- d# M/ ~8 w x! F
- ; Decides whether PHP may expose the fact that it is installed on the server2 M2 E! q2 [0 u* W% l" w- _
- ; (e.g. by adding its signature to the Web server header). It is no security+ E* d; U+ D9 ~% S4 L! p
- ; threat in any way, but it makes it possible to determine whether you use PHP) v3 w* B2 G4 Q# P
- ; on your server or not.
( T3 _$ P1 H2 V0 A - ; http://php.net/expose-php4 G W! i1 e" X* f' i
- expose_php = On
' }* ~& A- n; j3 p" G' Y - ' W$ w, w8 Y$ |" W
- ;;;;;;;;;;;;;;;;;;;* k; H q: ^8 F) d$ `
- ; Resource Limits ;4 f& U* G2 i/ r
- ;;;;;;;;;;;;;;;;;;;2 X4 ~/ n I( b; m
+ y( C+ X. n v0 H. _, r4 p! g- P- ; Maximum execution time of each script, in seconds2 g; n( I$ Z: l! K7 X- q2 Z
- ; http://php.net/max-execution-time& e5 N2 Y7 t8 F
- ; Note: This directive is hardcoded to 0 for the CLI SAPI
5 w) x+ r4 } D: J# L+ I - max_execution_time = 300
: F; A* H: L& }2 K, \) p0 X/ P
& I9 E4 [; [. ]6 D0 Q% s- ; Maximum amount of time each script may spend parsing request data. It's a good0 k" n$ E& e7 p! Q7 E( o! H$ L9 ?
- ; idea to limit this time on productions servers in order to eliminate unexpectedly' Y& f1 W: s; v. P7 _* F
- ; long running scripts.# Y0 Q" ~$ U" H5 b, C- }+ o8 c6 Q
- ; Note: This directive is hardcoded to -1 for the CLI SAPI
" P# U4 w7 j/ H* r9 z - ; Default Value: -1 (Unlimited)2 j# q) ]' }% D6 a% [1 W! _8 f
- ; Development Value: 60 (60 seconds)5 t8 C0 m3 z4 M9 \
- ; Production Value: 60 (60 seconds)
; J( s+ C& n6 }! {, T, f - ; http://php.net/max-input-time
1 m/ l6 s& [- z) p( U) f - max_input_time = 603 i% E3 `, e% y* x$ y6 U
" u1 Z6 b+ `9 X! k6 Z* B- ; Maximum input variable nesting level, L' g8 O7 x+ P! v! p, W
- ; http://php.net/max-input-nesting-level5 j# J Y1 W; W8 H$ y
- ;max_input_nesting_level = 64
6 U/ A+ {6 V. M" a
% ^( ?. j( X1 N! D4 `- ; How many GET/POST/COOKIE input variables may be accepted
0 e% D3 I. x% H* k6 _7 S - ; max_input_vars = 10007 ~& u% d3 k# m1 \* u
$ T7 i/ ^- Q5 B5 G- ; Maximum amount of memory a script may consume (128MB)
3 h) }" \' o, R/ k7 x9 D3 `# v3 g5 t - ; http://php.net/memory-limit
2 q5 l1 u7 A# y1 {# y- E - memory_limit = 128M7 B8 x# R3 ]+ j$ | `; l
- . e- m) N. U- r2 D9 p
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- P" i# D' r6 S" S% F$ N
- ; Error handling and logging ; O: V- A% D5 d- G
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ q/ l1 c# ?# |! S6 h
- / |. A: o5 X5 ~/ \; S
- ; This directive informs PHP of which errors, warnings and notices you would like: J; \) R6 E2 o* }( T
- ; it to take action for. The recommended way of setting values for this) w3 Z5 Z) s7 q9 g2 S0 K
- ; directive is through the use of the error level constants and bitwise6 o1 b) S; v4 Q4 }- U$ z
- ; operators. The error level constants are below here for convenience as well as
Y6 B4 b5 G; m - ; some common settings and their meanings.+ y. W: I5 |: ~1 r
- ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT% W* Z" ^, ]) b
- ; those related to E_NOTICE and E_STRICT, which together cover best practices and
% c* d. c) i9 _& v8 V Y- [ - ; recommended coding standards in PHP. For performance reasons, this is the2 Q6 | s; \1 ~9 c9 ]2 ? ^ Z
- ; recommend error reporting setting. Your production server shouldn't be wasting; a$ M+ G: d' ]7 h& D' B8 J. ^& ]
- ; resources complaining about best practices and coding standards. That's what
: Z5 U$ z8 y2 Y! Y6 T - ; development servers and development settings are for.
2 ^) }# e2 \" W" V3 g - ; Note: The php.ini-development file has this setting as E_ALL. This
. l6 v1 H' M0 u - ; means it pretty much reports everything which is exactly what you want during
( ^ B9 b+ \; q) h5 G% @1 p1 J - ; development and early testing.
5 s9 u( n+ e+ m - ;
) u ^/ t- ]9 k6 Z9 D - ; Error Level Constants:
& k( A3 ~8 D4 p+ n' q s: \# J - ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)! w' T2 B8 S; E. U& h }
- ; E_ERROR - fatal run-time errors
; i4 N: g9 p5 R& [ - ; E_RECOVERABLE_ERROR - almost fatal run-time errors
6 x7 X4 r# \: x6 \& b4 { - ; E_WARNING - run-time warnings (non-fatal errors)
: i, c4 B8 U+ D/ C+ A# _1 s3 k# A" y - ; E_PARSE - compile-time parse errors
) a0 i' b, ]/ N- t y - ; E_NOTICE - run-time notices (these are warnings which often result/ X( r; M9 u; ]5 g/ {5 w6 `2 j8 U
- ; from a bug in your code, but it's possible that it was
1 X3 D/ f: n$ e6 Y - ; intentional (e.g., using an uninitialized variable and
6 v: u; Q- v8 ]" a$ e, ~" G$ M9 | - ; relying on the fact it is automatically initialized to an
/ V0 ]/ T. n2 Z& g: Y# H - ; empty string)( N! C0 ]& i" l! w# v, e
- ; E_STRICT - run-time notices, enable to have PHP suggest changes
( P- M ~ ]& ` - ; to your code which will ensure the best interoperability* p8 K0 q- a- t# k! Q
- ; and forward compatibility of your code. E4 e9 w7 V; }
- ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
( f. }8 b" q) ^- z h z, U - ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's8 N: r) i) z' }3 b: U
- ; initial startup' ]1 ]% }% L7 ~* b. `
- ; E_COMPILE_ERROR - fatal compile-time errors+ P0 p6 J( F, K' I# d4 A& p4 x
- ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)$ t+ d8 n5 y: a. E/ ~; V3 y
- ; E_USER_ERROR - user-generated error message2 K# Y6 R7 J1 ?1 h& ^' a0 ^
- ; E_USER_WARNING - user-generated warning message
6 u# y) g* `6 O' Q; w - ; E_USER_NOTICE - user-generated notice message
6 O; O# W# B- q; y, ?* m - ; E_DEPRECATED - warn about code that will not work in future versions: u V G4 u* i! i0 l
- ; of PHP
: \* @- c* ~$ e) ~. r - ; E_USER_DEPRECATED - user-generated deprecation warnings
5 f# H' v2 E0 \7 I+ N; Q" S - ;
* _& K: ~. A, O. C1 I2 C - ; Common Values:
2 ?/ t. ~$ Y' c7 J1 T - ; E_ALL (Show all errors, warnings and notices including coding standards.)
: z9 ]! c7 }1 P, D" b - ; E_ALL & ~E_NOTICE (Show all errors, except for notices)
/ L h# R7 Z9 _: e# { - ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)- R$ `$ F& m( m ?" Q4 r
- ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
6 c' p% d, e. T) N% T6 {/ l - ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
, ^, v3 b8 Q' W+ g! M7 n - ; Development Value: E_ALL
w; [. k4 z4 c; {3 X6 K4 s - ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; B& v6 n* ? G - ; http://php.net/error-reporting
- h6 [& `. U- `4 k4 D9 _ - error_reporting = E_ALL & ~E_NOTICE) Z9 b1 v& g) n
) p, ~% K1 i9 H/ ? q8 _/ J2 j- ; This directive controls whether or not and where PHP will output errors,
! m0 a `# V6 i$ T1 v - ; notices and warnings too. Error output is very useful during development, but: \0 A6 X e! |# E- o
- ; it could be very dangerous in production environments. Depending on the code
+ `8 a) {/ p& Y i1 v' f - ; which is triggering the error, sensitive information could potentially leak
: d/ {8 X3 g: ]6 `, R% P. g% b. N - ; out of your application such as database usernames and passwords or worse.' s+ G5 \4 p/ L% p9 W, ^3 A. s
- ; For production environments, we recommend logging errors rather than
! n) ?1 ~* y/ M! b4 q - ; sending them to STDOUT.! l9 |$ F1 ^# z3 Y6 Z
- ; Possible Values:. ^ z0 s6 s- D
- ; Off = Do not display any errors( y7 u3 A! W% {" m. j) C2 }
- ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)3 @9 |4 {0 A% G2 _ u
- ; On or stdout = Display errors to STDOUT" k3 r7 e9 `" E4 `1 t
- ; Default Value: On
4 @7 `4 Y7 Q+ c3 B0 d& i - ; Development Value: On) Q. g7 N$ s, k; q9 X& M- k
- ; Production Value: Off3 P/ \ P) N8 j- u5 |
- ; http://php.net/display-errors- M$ O0 ]& u) v$ _! G
- display_errors = On: n8 j! o$ z1 H5 ^$ Z9 V
- 4 `% o8 R# o+ {- S
- ; The display of errors which occur during PHP's startup sequence are handled2 b- T* F4 Y! k9 }4 S6 f' m* H, B
- ; separately from display_errors. PHP's default behavior is to suppress those
4 n4 |, J- ^$ b1 S5 f; U: V - ; errors from clients. Turning the display of startup errors on can be useful in/ t5 L3 C# g5 G/ J2 t0 L# O
- ; debugging configuration problems. We strongly recommend you' h, u% S, {5 y' D
- ; set this to 'off' for production servers.% |4 u4 |+ r, j$ Y0 K- Y3 J) R
- ; Default Value: Off
% R/ D: |6 U5 N; N - ; Development Value: On% M* N9 ^1 J7 S9 ]( P- G
- ; Production Value: Off
5 G; w9 a" T7 ^3 F1 o - ; http://php.net/display-startup-errors, [$ u# a' Z* x0 }% j; @' p. W, {
- display_startup_errors = Off
9 @( ~: `( {- r( i! {
+ d* ^# ^7 X' m! Y$ B9 z4 g- ; Besides displaying errors, PHP can also log errors to locations such as a& p9 V l6 t2 q% N- k4 W7 U
- ; server-specific log, STDERR, or a location specified by the error_log, S c3 d8 i# t4 l6 {! p
- ; directive found below. While errors should not be displayed on productions
2 ~0 e$ t' J1 g - ; servers they should still be monitored and logging is a great way to do that.
! }; }, N" W6 E' ~' f( i - ; Default Value: Off$ L' t! D; i! M. ?( Z/ p# s1 k
- ; Development Value: On3 l; Z4 U- ?/ e m5 W1 ^
- ; Production Value: On
/ k3 \ X9 G4 G1 \% u! j2 P - ; http://php.net/log-errors9 }8 F0 u A i$ Y5 \
- log_errors = On+ A* i. |; K5 a% o& D
- ) q: M9 R/ Y( I" q
- ; Set maximum length of log_errors. In error_log information about the source is4 [' D( w& B0 S( U j, W
- ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
$ V* u2 h9 K4 h0 W5 r - ; http://php.net/log-errors-max-len% O0 F6 p0 z. O/ g. O: ]2 ~
- log_errors_max_len = 1024
& R9 ?( d0 ^( I - 1 J" |1 |# w, f( |& ^3 p# O+ E/ Q
- ; Do not log repeated messages. Repeated errors must occur in same file on same
' A( i, |! a1 ` - ; line unless ignore_repeated_source is set true.
7 L# U, R& k) {+ @4 a - ; http://php.net/ignore-repeated-errors
" t1 a! a7 n7 Y2 Z7 y* M) g - ignore_repeated_errors = Off# I+ W/ R( O' _3 l+ @3 n
) g5 g7 `# L4 b" |2 {# r- ; Ignore source of message when ignoring repeated messages. When this setting
) D/ i- ?. A# F/ v - ; is On you will not log errors with repeated messages from different files or
# i/ r; z% I1 e# r M/ `; Z - ; source lines.
T1 H! O+ ]: P, R( ~6 N - ; http://php.net/ignore-repeated-source3 r% A! k- A" u0 _% M
- ignore_repeated_source = Off
! ]) R3 \6 E1 C. k - 8 u9 Y8 H/ w2 B! e
- ; If this parameter is set to Off, then memory leaks will not be shown (on
; @( G$ l3 G3 m' l8 Q - ; stdout or in the log). This has only effect in a debug compile, and if
1 j, S. q& W' c0 m O; Z% Z - ; error reporting includes E_WARNING in the allowed list
" ^; t- q. f+ c1 U5 c4 O; O - ; http://php.net/report-memleaks
8 k8 ^, |& e2 }7 p; t) j9 q - report_memleaks = On/ p/ }0 J. Z* S- b) e
- ! W8 w+ U6 I; ^' G
- ; This setting is on by default.
7 F% a3 v* O! B8 J) e* n3 K - ;report_zend_debug = 0! l; x! U/ a7 p/ H
- % d1 e: r( J7 K! D" W$ Z$ ?4 o
- ; Store the last error/warning message in $php_errormsg (boolean). Setting this value7 y2 Z7 g) k) I* J) t
- ; to On can assist in debugging and is appropriate for development servers. It should# r; J4 q5 r! r% q. D% h
- ; however be disabled on production servers.8 c! q. G' z. f2 @) e. J
- ; Default Value: Off
4 P) Z1 d5 {% B4 m# Q9 P& j - ; Development Value: On. f3 D# }7 a3 w6 e, i+ `3 Q
- ; Production Value: Off* v- W+ n0 }8 j6 d
- ; http://php.net/track-errors1 s% q7 i3 a1 ^) b5 i
- track_errors = Off, P; ~0 W: f& D" m% j
- ) M+ N. Y& ?; K0 b! ~, B1 t
- ; Turn off normal error reporting and emit XML-RPC error XML
9 ~$ n& V+ L* E( A' Y8 Z' a4 W) W - ; http://php.net/xmlrpc-errors
- |- E% G( {" K6 U" q - ;xmlrpc_errors = 0
' y9 A) [2 e& g3 t+ V& S - " ~+ l8 g; J: A" {8 B2 H* S+ K. k
- ; An XML-RPC faultCode \$ a, K8 X3 d$ ]& e
- ;xmlrpc_error_number = 01 y3 x: F/ p7 [
- \' @" d! k0 _3 u5 B- ; When PHP displays or logs an error, it has the capability of formatting the8 H- u# t: k: w; W8 b/ T
- ; error message as HTML for easier reading. This directive controls whether
/ t- R2 T2 @6 U. [1 D8 F - ; the error message is formatted as HTML or not.
; E+ ^0 w0 C* ^; Z - ; Note: This directive is hardcoded to Off for the CLI SAPI
; D$ T! A) u$ D6 w) r - ; Default Value: On
5 \1 F9 @- }! q w - ; Development Value: On' v0 T1 ]) E) z, K
- ; Production value: On
) B2 V" H" W% {9 x3 E" y" ^+ P i& e - ; http://php.net/html-errors" `% b E& i. h
- html_errors = On& `% p$ ?( o3 R5 {: O0 v
- . `" y6 t, A/ e" t3 i
- ; If html_errors is set to On *and* docref_root is not empty, then PHP7 Z1 p9 j0 T8 v5 e5 {9 G! F
- ; produces clickable error messages that direct to a page describing the error
' {& j2 w. l8 T" r, p) q/ _$ b7 |' j - ; or function causing the error in detail.% z& ^3 }# Y0 i( r
- ; You can download a copy of the PHP manual from http://php.net/docs
, g4 y0 N4 {8 s: `9 D - ; and change docref_root to the base URL of your local copy including the
+ Z# y. A% x* ~' q - ; leading '/'. You must also specify the file extension being used including
1 Z) x- i3 }2 A. q8 J - ; the dot. PHP's default behavior is to leave these settings empty, in which
. T7 ]& K6 ?8 E$ p* D; i3 @+ D' { - ; case no links to documentation are generated.
- Q9 Z+ Q6 z& p& h# _0 ] - ; Note: Never use this feature for production boxes.
0 }- k5 d' d2 S - ; http://php.net/docref-root- q* U2 n _# P: \
- ; Examples
' ~# b1 [7 ^, p7 U8 I: p4 ] - ;docref_root = "/phpmanual/"2 m5 h' Z7 W, x! m- t
' J/ ?1 X# A! ^5 I- ; http://php.net/docref-ext! }1 q, @- ~' f& ~9 y, {, D
- ;docref_ext = .html% |+ s* w4 g C% ` M
- 2 j* B, U) l: W, g" x
- ; String to output before an error message. PHP's default behavior is to leave
: @$ M1 m8 J# _5 z* ?1 x5 s0 q' `2 D - ; this setting blank.. ] b. q6 q/ I8 D7 G" L) H$ j
- ; http://php.net/error-prepend-string1 c; p- z7 f( \- }
- ; Example:
; h# C/ D: N1 z5 {/ B. ` - ;error_prepend_string = "<span style='color: #ff0000'>"
4 r: w+ b8 n0 Y
% O- T& ^ {% I- l$ p- ~- ; String to output after an error message. PHP's default behavior is to leave/ Z2 Q! a% [# H3 l" K
- ; this setting blank.4 Z, G8 Z# x" H- y r
- ; http://php.net/error-append-string4 J3 L* d" U9 x- H2 B
- ; Example:
9 X5 X% x8 G9 n - ;error_append_string = "</span>"
% x+ [( H/ U5 g0 T9 F* K" V) w
% J) ?5 t4 i( p1 G' K- ; Log errors to specified file. PHP's default behavior is to leave this value3 D" ]' V8 V4 c$ @/ R
- ; empty.- k- E) m: F# Q% J3 Y
- ; http://php.net/error-log) W6 g1 T; V2 o# n$ O1 h
- ; Example:" s" h1 ?( u% |: T8 W/ K$ {+ l6 W
- ;error_log = php_errors.log
* K% X& t( Y6 c7 E5 Z2 a1 G' y- f - ; Log errors to syslog (Event Log on Windows).
; ], {; X* P% {5 Z, S% [ - ;error_log = syslog
% C+ s& b$ Y( d- h! I$ d9 K7 [ - ) J- w: [8 Y# K4 p" M
- ;windows.show_crt_warning+ ` y j0 h) u* V4 X
- ; Default value: 06 a7 X2 \ H+ ?! L, Z2 i5 f
- ; Development value: 0) k$ ~$ I$ B" \2 \0 y$ b4 U
- ; Production value: 0; G& ~. R/ C0 @! Q1 H. ?
0 D- \5 Q- t$ u/ b* O- ;;;;;;;;;;;;;;;;;
$ t2 j8 V: O* |) g& x2 o2 k - ; Data Handling ;
: [0 [# j6 u& M. Z2 ]3 L+ { - ;;;;;;;;;;;;;;;;;5 S Y8 e. `: R! d! U2 }; U
0 e' F* b; I4 F, c- ; The separator used in PHP generated URLs to separate arguments.
+ S# C0 Y; X% x5 |: A - ; PHP's default setting is "&".
1 x7 r7 @7 J/ f! n9 M - ; http://php.net/arg-separator.output G: {+ G4 E$ Z: K6 K, m
- ; Example:
; ?# f( P! q( c6 Z$ Z( j1 g - ;arg_separator.output = "&"
1 }! u$ n2 b$ u) j - 7 Z: B O/ E0 D# O% R3 [! }: v* [) g
- ; List of separator(s) used by PHP to parse input URLs into variables.
' u$ G1 v( z j+ z: N - ; PHP's default setting is "&".5 Z# m0 o$ n" p6 D/ \
- ; NOTE: Every character in this directive is considered as separator!
9 | A+ w" u d) U - ; http://php.net/arg-separator.input
7 d! V# o0 c0 J k4 M - ; Example:
3 ^' C3 X4 d9 {5 c2 I9 _- Q% N$ m - ;arg_separator.input = ";&"
6 ]1 B7 J4 n1 `8 k* \1 s - 1 n C, {) d& D; T4 K4 L
- ; This directive determines which super global arrays are registered when PHP
$ M9 E- D0 q) V$ }4 h& K - ; starts up. G,P,C,E & S are abbreviations for the following respective super! O) ?! l! ]8 |/ A
- ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty, u# X* c$ _0 t9 M. r( c& C) a t
- ; paid for the registration of these arrays and because ENV is not as commonly4 a& B1 J) J: S( x1 o
- ; used as the others, ENV is not recommended on productions servers. You9 R }! e: i$ n
- ; can still get access to the environment variables through getenv() should you
2 ?, l: d S- B, [1 u - ; need to.2 l5 \7 |+ R2 D2 Y. K& b: A
- ; Default Value: "EGPCS"
9 G% E" f. F2 ]7 H d6 E9 t, A - ; Development Value: "GPCS"
3 J f1 V+ R. G$ S. O: T U - ; Production Value: "GPCS";
- [2 A( ]9 M* ?! { - ; http://php.net/variables-order
: b. F" o) Z5 E5 p - variables_order = "GPCS"" I; S0 N3 H2 ]% G8 m
1 Q1 F* v2 {& m* ?& R- ; This directive determines which super global data (G,P & C) should be4 c" M$ f( a! ^8 @
- ; registered into the super global array REQUEST. If so, it also determines
8 Z% s& ~% K3 X4 V1 M - ; the order in which that data is registered. The values for this directive
* A* f/ v+ Z1 {. A - ; are specified in the same manner as the variables_order directive,
* G X) x% N3 ^, M, T9 m - ; EXCEPT one. Leaving this value empty will cause PHP to use the value set! f4 v% K5 w- N3 Z( F
- ; in the variables_order directive. It does not mean it will leave the super* D1 x6 M a" D
- ; globals array REQUEST empty.
7 w* A- u/ L' ~# } - ; Default Value: None5 U; a7 N) `# q, [
- ; Development Value: "GP"
) u2 f# F7 d M* u( B - ; Production Value: "GP"
" V( {) n2 o- J4 U5 s - ; http://php.net/request-order
5 A2 M; D# i9 T: W - request_order = "GP"
0 F- g5 E4 n% O! Z3 r5 l
* ^8 O3 u4 l8 K0 M9 v$ c- ; This directive determines whether PHP registers $argv & $argc each time it
* ]. h& C3 O8 O, ^0 j - ; runs. $argv contains an array of all the arguments passed to PHP when a script
# U& M+ B* L y: o - ; is invoked. $argc contains an integer representing the number of arguments; |4 {2 _% ~8 p3 Q m- ]
- ; that were passed when the script was invoked. These arrays are extremely
# U$ J) }( @$ @2 z( J: @4 V1 _ - ; useful when running scripts from the command line. When this directive is
2 d L% E& A3 C6 T - ; enabled, registering these variables consumes CPU cycles and memory each time# ?- E$ q( `- V! V R3 E
- ; a script is executed. For performance reasons, this feature should be disabled
/ {6 d( B' @/ D' _$ g6 R2 @ - ; on production servers.# d: }, C! _" D" k; t9 ^' J
- ; Note: This directive is hardcoded to On for the CLI SAPI6 l" f/ ?8 _, V& x
- ; Default Value: On8 s3 Y, Y; R: L% `$ b: u
- ; Development Value: Off
# T; ^! h" T' }6 _& h - ; Production Value: Off
8 P! U+ y2 B- S - ; http://php.net/register-argc-argv. u+ `3 A( a; e
- register_argc_argv = Off7 K, R9 _6 l: K, a
! B: G3 W; |. @+ v- ; When enabled, the ENV, REQUEST and SERVER variables are created when they're. x/ v$ g$ F% @
- ; first used (Just In Time) instead of when the script starts. If these
7 p2 `1 w2 l" X$ ]: B" x- q - ; variables are not used within a script, having this directive on will result
K. q/ \7 P4 ~# t. Y0 Z - ; in a performance gain. The PHP directive register_argc_argv must be disabled
( i# X2 `8 S" _" k - ; for this directive to have any affect.
7 e% ~( g8 `9 Z8 m - ; http://php.net/auto-globals-jit
, r* }* G# l+ H& `6 f! X7 O1 R - auto_globals_jit = On
- x4 X! V2 `" u* {
! A4 x! ]: f$ Q6 h5 H4 i9 y$ s' V- ; Whether PHP will read the POST data.
) M v7 J" x- F- {9 v - ; This option is enabled by default.
9 ]' Q5 N( X/ J - ; Most likely, you won't want to disable this option globally. It causes $_POST0 t* m) D7 r( c9 k( f
- ; and $_FILES to always be empty; the only way you will be able to read the! b$ N* v. M& B9 [7 N' P7 K8 ]
- ; POST data will be through the php://input stream wrapper. This can be useful6 K! N& U/ @8 Z" m
- ; to proxy requests or to process the POST data in a memory efficient fashion.
& H7 Q2 _& _: R* I) H: R - ; http://php.net/enable-post-data-reading: U$ w+ x, K! m% v, n5 J2 J
- ;enable_post_data_reading = Off
2 {! q" e" n" B% P& G
) I9 o1 N3 C5 _- ; Maximum size of POST data that PHP will accept.
# o2 ]/ V! J2 K5 e& f: o - ; Its value may be 0 to disable the limit. It is ignored if POST data reading
+ S1 \# a! `) E( ]! c1 U/ [ - ; is disabled through enable_post_data_reading.
. Q0 T: X& F- K5 s( H& c - ; http://php.net/post-max-size
- w8 W, @$ U* ]! ?/ s$ w - post_max_size = 50M
; v& F% o: r* I( s - * q# u( g( J& `: ~
- ; Automatically add files before PHP document.
( y' i1 }# E7 A# @ - ; http://php.net/auto-prepend-file7 R3 d- A- K1 k9 |
- auto_prepend_file =/ i) Z' B5 h( ]7 j, o) r0 a
- 4 ?& L. K- n3 m9 ]
- ; Automatically add files after PHP document.
7 \1 d- ~. x4 O+ h$ E8 d3 _6 z - ; http://php.net/auto-append-file
! T, {9 m' m" H; I6 i- f - auto_append_file =1 W$ d" \ b9 Y! Y
- ; k! x8 J1 }6 e. C( f
- ; By default, PHP will output a media type using the Content-Type header. To
7 N+ W& X R1 I+ p- a - ; disable this, simply set it to be empty.
3 s) A& P% v% c- W" h - ;
; P2 } o" j; D6 W- o4 r) y ?4 h2 _5 ^ - ; PHP's built-in default media type is set to text/html.
2 D9 ^" A W# T# y" t% k - ; http://php.net/default-mimetype; p. P2 `# _5 W& X% T
- default_mimetype = "text/html"
6 b1 V% Y8 |! P& u" h! s; a$ M6 a' q - ( n- q: [8 a( V' X" N5 J" z
- ; PHP's default character set is set to UTF-8.3 ~+ i9 n6 L9 p- H! T
- ; http://php.net/default-charset7 {2 }/ v; y3 P
- default_charset = "UTF-8"" n# G% a4 I' [( B# I1 g8 ^. j
- " Z, P; \+ h7 \" O3 |
- ; PHP internal character encoding is set to empty.% A$ V/ G" X. l; ~ C Q. w, z
- ; If empty, default_charset is used.
4 N0 I) L8 E$ W; D; E# z - ; http://php.net/internal-encoding! S7 d# e- Y! ?: M
- ;internal_encoding =
3 U/ i6 t1 g8 m6 M - . ?' s) r5 m3 H8 H
- ; PHP input character encoding is set to empty.* c: c: k1 L {0 w0 Z" b3 n
- ; If empty, default_charset is used.: W* |' s, E3 y5 V4 ^' T8 Q8 @& N
- ; http://php.net/input-encoding; d% w+ w O4 O0 X* P
- ;input_encoding =
$ O/ S* p4 |) b( ]( E - 6 }; E( _0 }7 k3 Z6 y3 `
- ; PHP output character encoding is set to empty.
) R* d+ X+ s( G - ; If empty, default_charset is used.
/ ~2 g& D6 s/ W7 n- C. F w3 o - ; See also output_buffer.
& Z5 `2 }, y3 I) A( ]. W' ?5 T1 | - ; http://php.net/output-encoding2 `4 T. t; ^5 q$ o/ Y
- ;output_encoding =2 b# R/ v; ]& p9 o8 o
: C& k5 d* n% @7 x! X& W, Y) Q- ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
: L( d6 h$ F- v @$ U - ; to disable this feature and it will be removed in a future version.
, z7 j8 z Y9 V. Q( H3 J2 e7 } - ; If post reading is disabled through enable_post_data_reading,
. g0 O, z9 s7 X" _% J - ; $HTTP_RAW_POST_DATA is *NOT* populated.8 k' x5 r+ A: H+ {" m
- ; http://php.net/always-populate-raw-post-data% y2 M- N" P# j V4 c& `- @
- ;always_populate_raw_post_data = -1: I9 ]2 m1 ^2 W& z: |( O& Y
- 0 @( [% N5 J0 ]9 |
- ;;;;;;;;;;;;;;;;;;;;;;;;;
S; \1 W/ a7 E9 C. g( Z1 o- y - ; Paths and Directories ;5 h4 Z( j+ P0 }8 c; K6 ]& y
- ;;;;;;;;;;;;;;;;;;;;;;;;;
; I+ V, W0 f. r6 C5 I
. a, V# H; }2 r6 d) l- ; UNIX: "/path1:/path2"* I0 P- Z% B% E+ H5 M6 {
- ;include_path = ".:/php/includes") c4 p9 s( ^ Y+ F& E# Z0 b0 O6 J
- ;
# ^' @! {+ }% f# e: ?% s - ; Windows: "\path1;\path2"+ @; [& \5 D1 v3 l
- ;include_path = ".;c:\php\includes"8 n7 X# g6 \( S- q8 N4 y6 [# z. V* j
- ;- r; T3 Z5 m/ D: n" o5 T5 }4 j, V4 M
- ; PHP's default setting for include_path is ".;/path/to/php/pear"' q3 g2 ^5 ]* v
- ; http://php.net/include-path0 c* o4 h1 u* I# {; C+ c
- , j5 G A$ s. H R
- ; The root of the PHP pages, used only if nonempty.$ Y3 F9 Q( m+ L& `4 r+ @2 q+ A6 W; A
- ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
- c- l' D8 S l: F% p5 A. [& _$ q - ; if you are running php as a CGI under any web server (other than IIS)6 D$ R4 t' j, r) K. X4 u. k
- ; see documentation for security issues. The alternate is to use the
2 Y" ?& ?+ T1 `& ]7 ^# @0 G& o - ; cgi.force_redirect configuration below5 Z% b7 h0 n, v( D3 X
- ; http://php.net/doc-root
8 n' F/ j7 |& p7 a& k9 |; e - doc_root =
5 U. d% T# k4 y8 w
3 P+ X- e2 U# V! ^% {. d- ; The directory under which PHP opens the script using /~username used only
8 _5 v: q: T3 {+ I6 i/ S - ; if nonempty.5 ^3 O% ^; k+ t
- ; http://php.net/user-dir
( J# N: ]3 \( q! b, {% }2 | - user_dir =
' N- }( K% `, H* L2 ]# s; m+ u
0 I$ c }/ H3 ]- ; Directory in which the loadable extensions (modules) reside./ S) S* I) X" L2 B6 c) Y8 C- Q9 I
- ; http://php.net/extension-dir9 H4 P9 r$ l& L3 K! Y* g U% n
- ; extension_dir = "./"
$ U b% @( l4 R5 N+ { - ; On windows:2 ?5 R% A2 m/ c* A% F
- ; extension_dir = "ext"/ x, N! M3 B' D( p- U
; i7 _0 _2 q$ e$ p, C1 `- ; Directory where the temporary files should be placed.
- G+ t* Z4 ]% B) u" l - ; Defaults to the system default (see sys_get_temp_dir)
4 e, @0 e. |5 B6 k5 ]: y! J - ; sys_temp_dir = "/tmp"8 ~9 j. p, I+ K1 m; W; s5 y
4 o* Y7 W% y4 u, V% u; W, V0 j$ V- ; Whether or not to enable the dl() function. The dl() function does NOT work
6 s8 d. a9 l$ |% d3 `3 N - ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
, y, W$ y; u; |0 y - ; disabled on them.. H: f: k# v! b1 B
- ; http://php.net/enable-dl/ y( w6 U+ d K3 M- }- p/ }% F u2 d$ I
- enable_dl = Off2 B" y L8 A, k7 {
- 2 }0 r5 \; ^% M$ w: x5 E
- ; cgi.force_redirect is necessary to provide security running PHP as a CGI under
2 l, S& _$ q$ F( N7 `/ T - ; most web servers. Left undefined, PHP turns this on by default. You can
1 N6 o% A& F& Y; j0 i - ; turn it off here AT YOUR OWN RISK! U$ W- Y5 m+ {
- ; **You CAN safely turn this off for IIS, in fact, you MUST.**) N# o9 e! j' q# [3 }$ l% L1 V3 M0 Y
- ; http://php.net/cgi.force-redirect
( Y, E- ]% z2 S4 T5 h4 B( D - ;cgi.force_redirect = 1
* k4 y- ~" C$ H$ Q& L% X2 ` - + n% H+ G' Z% T
- ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with) t2 c$ T; r. m! Y" f0 }
- ; every request. PHP's default behavior is to disable this feature.
- l0 G: k z$ s - ;cgi.nph = 1. F7 d5 P" q- p5 V3 J
% N& Y$ G- M- i* @8 R- ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape$ h2 ~2 [6 B) Y1 _* z* W' r
- ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP; X& M& k3 j2 R8 `% A- [, w5 P
- ; will look for to know it is OK to continue execution. Setting this variable MAY6 k; f! E" W6 W/ H' Y) {% E
- ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
: ~9 A& `* Z; D* L- [3 v - ; http://php.net/cgi.redirect-status-env
P3 i4 n4 h8 h5 N0 {5 `$ t0 D9 w - ;cgi.redirect_status_env =; ]. ~+ \. J0 }; R6 o% p
# y% r* N( z, F5 E6 V9 R- ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's' m: }& r$ X4 m: b. x7 S- {* Z: B
- ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok3 ~* U& k: w$ i @6 ^
- ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting; y+ ~% ?. B1 O3 y0 P- K
- ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting4 P. W! X+ ]" u Z
- ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts {. N! U2 g% J6 N; @
- ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
+ J) s! _/ g5 B) F) u7 V1 R; |2 _ - ; http://php.net/cgi.fix-pathinfo s: l( o7 a8 S( @- [/ T1 V
- cgi.fix_pathinfo=13 H/ a& z' j, z3 o! R2 d
Z; z0 p7 C& m; B1 z' m" T- ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside+ A" F- K5 c1 y; _% {2 g) y
- ; of the web tree and people will not be able to circumvent .htaccess security.2 M9 d0 L) Z8 ~7 \, A! e! c2 N
- ; http://php.net/cgi.dicard-path
1 S( f0 s' w) V3 m - ;cgi.discard_path=10 V9 b) H5 e; I" Z( g
0 _2 |9 |3 j: B6 M$ G7 G: x- ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate- ~$ A% k! w3 q" K! }# K' X: [
- ; security tokens of the calling client. This allows IIS to define the
' R# h$ Q! z4 O2 g, Q+ h6 C - ; security context that the request runs under. mod_fastcgi under Apache
$ E3 }0 {8 e4 e4 T- I/ Q1 E - ; does not currently support this feature (03/17/2002)
+ _* G" o# c3 q3 H$ |8 X - ; Set to 1 if running under IIS. Default is zero.
v6 M" b5 M9 s" X1 n' _ y - ; http://php.net/fastcgi.impersonate( u" g3 M9 h3 b- O- j
- ;fastcgi.impersonate = 1
$ Q" t$ U6 r/ t, W/ h6 s6 l
9 N6 m5 @) z9 P& k" z- i" O- ; Disable logging through FastCGI connection. PHP's default behavior is to enable n7 R6 j" D5 e4 [ }* k
- ; this feature.
# y d" q) I0 p% y2 S) v# A* b9 ] - ;fastcgi.logging = 0/ n/ N+ e8 i! x1 Z i* o
- : U- o+ \* U$ n N/ I2 k" L, ~
- ; cgi.rfc2616_headers configuration option tells PHP what type of headers to' R Y- B9 }7 Z) Y" c/ f& S
- ; use when sending HTTP response code. If set to 0, PHP sends Status: header that
* X3 O1 y m. [0 ~ - ; is supported by Apache. When this option is set to 1, PHP will send; L3 x( u& J6 W8 J4 m
- ; RFC2616 compliant header.
; D- N* m1 \9 n# C - ; Default is zero.0 Q6 v3 \5 |" S8 e* c/ j
- ; http://php.net/cgi.rfc2616-headers( N3 R% `# J) u0 [- \0 a! t8 [
- ;cgi.rfc2616_headers = 0: T! `+ i/ e' L. s5 Y8 z
3 Z! ^5 p6 ?# ] {- ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!4 p& u0 Y A! }) u" O" D: H
- ; (shebang) at the top of the running script. This line might be needed if the# e* Z- w- L) P' w
- ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI
: k0 A& Z5 {% t7 s - ; mode skips this line and ignores its content if this directive is turned on.
9 B4 b& m, f3 E# V6 a - ; http://php.net/cgi.check-shebang-line/ t) U' z4 J- K5 u3 \9 w5 A
- ;cgi.check_shebang_line=1 z& R O' N; j A
- 2 v. V$ J: h' Z! @8 m) A6 s: b
- ;;;;;;;;;;;;;;;;
- v% y& Y& N) ]* { a3 E# [! v - ; File Uploads ;
: D3 [' U, \1 l8 G' Y$ f/ x - ;;;;;;;;;;;;;;;;: X6 y. ~6 l2 M, Z' T
2 T2 x% D2 X2 D8 d$ e# P- ; Whether to allow HTTP file uploads.4 Z0 x# I' s: b6 X( T
- ; http://php.net/file-uploads5 s7 b! x% k2 I C8 K: [( ^6 c
- file_uploads = On$ b. a% t& j/ |* | i
- . Z% M8 U- a% Q: e; s) n
- ; Temporary directory for HTTP uploaded files (will use system default if not" ?1 }% b9 C0 @* F
- ; specified).& B) {4 S& }7 ~
- ; http://php.net/upload-tmp-dir6 U: R$ k+ g6 ]2 I9 H
- ;upload_tmp_dir =
5 ^5 E8 U( y. Y2 k
7 z ], m* E5 T2 P) H- ; Maximum allowed size for uploaded files.
1 M: |5 o+ \' ]. _2 j - ; http://php.net/upload-max-filesize- b3 C3 _* r7 B
- upload_max_filesize = 50M6 i+ D, i' p; M* L% B
, q& w9 S% q6 D H- ; Maximum number of files that can be uploaded via a single request% h/ O) I" S/ I* S( t" g: K
- max_file_uploads = 20
- p# [# u! T$ f- o5 Y" K) }' c - . K" r3 i8 Q7 G2 \8 h
- ;;;;;;;;;;;;;;;;;;$ q, t! C. i, d' Z7 O" ?6 S
- ; Fopen wrappers ;+ H: R- M1 k+ z( M0 r
- ;;;;;;;;;;;;;;;;;;
3 E" ^6 s* }' {1 U7 {* |1 p( g - 0 p" @# p2 Z7 ^. d$ c0 X1 T5 H; |
- ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
) D8 {3 i9 }( | - ; http://php.net/allow-url-fopen# `) J+ h" e; P3 H. O
- allow_url_fopen = On
8 x- j- e/ D u5 ?/ f9 m
+ B4 W# I, o" I6 a4 G- ; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
& h* d7 W% b3 P - ; http://php.net/allow-url-include
# O8 J; }+ N: t - allow_url_include = Off% `" M$ ?* |8 J" D7 G
- * A8 J' J6 C) y
- ; Define the anonymous ftp password (your email address). PHP's default setting
1 j! } |. I- b) g+ [ - ; for this is empty.# a3 U4 Y9 C% v5 ^. G& A7 w
- ; http://php.net/from
, H$ V) w- P: o( z1 ]% ^7 u, i - ;from="john@doe.com"
. \1 n$ R( J, N& S* a+ G, @
, I$ m$ F* t+ N- ; Define the User-Agent string. PHP's default setting for this is empty./ l: f3 r; F! @! U9 J0 \
- ; http://php.net/user-agent
- a% y6 z2 Q5 p' E: @2 i& r - ;user_agent="PHP"
$ ^% [* r; x4 H/ f! J, Y
0 ~" H) P6 h3 R6 _. t) ]- ; Default timeout for socket based streams (seconds)4 V) V5 m" ?0 L% g8 v9 b
- ; http://php.net/default-socket-timeout! Z' b! j# g. E' w* n) ]% ?
- default_socket_timeout = 60% {5 U" N1 @$ I8 \8 `
- ! F1 o) r5 ]/ r1 z$ ?
- ; If your scripts have to deal with files from Macintosh systems,6 e* _) e7 N& G, r- A) M1 r
- ; or you are running on a Mac and need to deal with files from% H% f6 u" N9 @. ]" G
- ; unix or win32 systems, setting this flag will cause PHP to
. ?( H( p) K6 s, p7 P - ; automatically detect the EOL character in those files so that
1 x3 F1 ~0 z) P1 ^- Y9 E/ r: Y) c - ; fgets() and file() will work regardless of the source of the file." V2 ~& g& e- ] F) U2 Q E
- ; http://php.net/auto-detect-line-endings4 w4 R; V; u- U/ E
- ;auto_detect_line_endings = Off S3 q7 I' x1 d1 r6 y
0 \. n s9 i% Y- ;;;;;;;;;;;;;;;;;;;;;; V& t! `: |; w/ p5 t3 E) _7 Q' O3 A
- ; Dynamic Extensions ;; m9 {6 e) N6 p: i- W- ?2 H
- ;;;;;;;;;;;;;;;;;;;;;;
, @" r6 y/ i0 |9 S& {" ^ q
/ C( c4 ]; ]6 `& k' |' l+ B$ Q- ; If you wish to have an extension loaded automatically, use the following0 v5 _& S o# B1 b
- ; syntax:
1 l# _' C) C5 z+ d5 R - ;
4 y7 h$ I6 a; @( K- } - ; extension=modulename.extension
9 X: c6 M) ?# Q A$ W - ;: y) P9 G9 Y" Z, j1 R
- ; For example, on Windows:
9 G. t; S% j/ K0 `! U/ ~ - ;
# v0 j2 n8 k, q - ; extension=msql.dll" X. D, X4 j, W8 J
- ;5 U3 Y& l& e! I. \1 H5 G
- ; ... or under UNIX:- @) V2 k2 J* r5 j& ^) m
- ;* c8 @* J7 Y+ g; \- n7 u/ i z7 C
- ; extension=msql.so
/ r% y) O! G! p U' d - ;
1 D! o; _6 y6 u1 P8 o - ; ... or with a path:
5 t3 P: q' `1 ]& r; Z( f/ p - ;; O. e) [ [3 f! [7 m# f- S$ ?; {& j
- ; extension=/path/to/extension/msql.so
2 C. j2 m; Z# l: V: c6 ] - ;
' [- c C- g9 Y - ; If you only provide the name of the extension, PHP will look for it in its/ y6 @ a8 R( y/ F7 q# p/ W, r: S
- ; default extension directory.; m. H% {+ i2 a" ?% ^: |
- ;
: s* _$ c: X5 W d. S6 j - ; Windows Extensions
$ P4 u7 N: R% W* E% V1 D5 C - ; Note that ODBC support is built in, so no dll is needed for it.
4 p5 F2 i2 U0 s5 r; q2 q5 Q - ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; {" f5 b4 h# q9 ~0 O7 i4 Y - ; extension folders as well as the separate PECL DLL download (PHP 5).
E) x! F6 x8 E, ~2 U, S* X - ; Be sure to appropriately set the extension_dir directive.
. o9 y1 r% A9 P: C& a! ~ - ;
/ h0 n5 K+ Z' `$ p+ l - ;extension=php_bz2.dll+ ^7 z ~1 Z& S
- ;extension=php_curl.dll: u$ j! W; o/ ], {" I0 b
- ;extension=php_fileinfo.dll
* V2 I$ z# F; l. V/ H" O5 | - ;extension=php_gd2.dll
: I; ~5 @7 ?5 D; J/ `3 B% [( ]3 V - ;extension=php_gettext.dll
4 F$ b$ f% P ?( W - ;extension=php_gmp.dll
; C: j% L7 @8 O; }! Y6 _+ a - ;extension=php_intl.dll
0 \1 G7 o; m* U0 r - ;extension=php_imap.dll
% c: z' }0 C, ?8 s9 c7 w - ;extension=php_interbase.dll: d b3 ]0 v) }
- ;extension=php_ldap.dll
0 d6 ]+ _, z' E - ;extension=php_mbstring.dll- x% t( N9 R8 w# v
- ;extension=php_exif.dll ; Must be after mbstring as it depends on it) g( {1 j) |3 ]9 @0 j: |) s
- ;extension=php_mysql.dll5 ?( Y8 E7 K" |3 D
- ;extension=php_mysqli.dll
: D3 s: W# S; W7 x/ R - ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
6 O! f0 j, d8 g* s4 m - ;extension=php_openssl.dll* |/ ?1 l+ [! E1 A' H* g
- ;extension=php_pdo_firebird.dll
! M: m E' u. c - ;extension=php_pdo_mysql.dll
( s( V1 f* n- }2 m - ;extension=php_pdo_oci.dll4 C5 G7 h. J( r. C; h, z
- ;extension=php_pdo_odbc.dll
: w9 {# G' l. Z$ z: [$ r, ?" F - ;extension=php_pdo_pgsql.dll
# N, C1 ^9 }- ?: o+ v3 I - ;extension=php_pdo_sqlite.dll) I, \ Z, T1 N" d
- ;extension=php_pgsql.dll
( v/ b' r2 ~4 Y( p( I9 e6 a - ;extension=php_shmop.dll% v/ m3 n r* v* k |- F
: _5 }" T2 U+ L; }4 e- ; The MIBS data available in the PHP distribution must be installed.
$ ~3 m* _( @6 Q: V( B7 K, y, C- b - ; See http://www.php.net/manual/en/snmp.installation.php u4 d# D7 H3 D; C3 a/ K
- ;extension=php_snmp.dll
/ z3 w8 \2 L# M5 q2 X
% T, o2 R) u+ x5 o2 y- ;extension=php_soap.dll
3 D% {7 g; _: B' W+ A1 y - ;extension=php_sockets.dll& C$ l6 V$ I6 u* }9 ~, Q. u \, a
- ;extension=php_sqlite3.dll: u+ N( s- R4 v# T: i
- ;extension=php_sybase_ct.dll
: [+ t* D7 I0 [4 ^" p6 T3 n - ;extension=php_tidy.dll
9 Z! e5 D, m2 x: j# O) F$ c$ ?# y - ;extension=php_xmlrpc.dll
0 U/ O2 r) r; M; g - ;extension=php_xsl.dll
0 [2 H9 @' b P* O8 f& T; L - 3 b/ `. f+ `% k9 I
- ;;;;;;;;;;;;;;;;;;;
2 M X9 L7 m2 y/ t c. k) L5 {* [ - ; Module Settings ;% } K6 H. f. {' ~% i3 K
- ;;;;;;;;;;;;;;;;;;;+ }8 W/ R: V5 S6 J
; |- y* c' j; @, ~- [CLI Server]' _, E8 a7 l% h5 ^$ s4 [
- ; Whether the CLI web server uses ANSI color coding in its terminal output.% A# T- S e% n" u
- cli_server.color = On, x& v; ]* r; {
- $ v; p( a! u' G0 N) D0 ^7 |4 D
- [Date]
3 {3 F& V9 N& H4 _/ E) K5 U6 j - ; Defines the default timezone used by the date functions
8 }* ~8 e" y5 H" ]2 i9 @# h - ; http://php.net/date.timezone
( D5 d; m* g( M7 ~( u - date.timezone = PRC
. G9 N: Y0 U, I* l
/ G1 g1 Q" c5 ?( ~; |- ; http://php.net/date.default-latitude8 `" m! k" P; N) @
- ;date.default_latitude = 31.7667
( U4 j6 i( p7 P# T5 C3 t. E v: O - # j, q. Y- y+ C `% ^
- ; http://php.net/date.default-longitude+ }) F/ o: O5 _- V# p
- ;date.default_longitude = 35.2333
: ?8 n7 T ^2 y, M9 T7 I: w
$ `6 J( U/ x: x4 u$ r. V: R- ; http://php.net/date.sunrise-zenith$ I8 x+ a& r8 s8 L' r$ L
- ;date.sunrise_zenith = 90.583333
% v$ d' x, J( s# E) }& l7 q B
* p3 n; ] U' `4 N4 Q, |8 d- ; http://php.net/date.sunset-zenith% E; G+ v3 i/ c
- ;date.sunset_zenith = 90.583333, r6 K% v% d3 {- \5 t
- , }* U3 K8 O# e; n
- [filter]
- J. U p+ G4 `8 x! a* n - ; http://php.net/filter.default
; P1 R7 S$ N ^! _, i7 P, t - ;filter.default = unsafe_raw
4 J* `7 ?# W H$ c( i# e. e9 Z Q - o# l5 d5 o$ \9 V/ ]" I
- ; http://php.net/filter.default-flags
8 w5 T& e7 i/ k8 | ]$ u _ - ;filter.default_flags =- R0 \ y" J* B& x3 s1 [/ F$ |
4 l$ S) y( n5 w' B$ ^9 |# A- [iconv]/ w) Y) Q0 e3 i/ S0 K& }( |/ @$ y
- ; Use of this INI entry is deprecated, use global input_encoding instead.
5 e, o: Z; L3 B& P9 ]% o& Z6 z - ; If empty, default_charset or input_encoding or iconv.input_encoding is used.
, o; z2 f5 `0 ]: s" Z N' ` - ; The precedence is: default_charset < intput_encoding < iconv.input_encoding P5 H! _3 H! _" @4 V- P8 M2 \8 `4 r8 _
- ;iconv.input_encoding =
% D; ]: ^: t5 Z {, u
9 U3 ?- t8 V# B: _- ; Use of this INI entry is deprecated, use global internal_encoding instead." f4 i' U; ]# M% X) ^4 ~7 g3 L
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
) V8 {! ~8 S+ h# a3 H; Y - ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding- e ^3 k7 a' d. e2 ^
- ;iconv.internal_encoding =! p5 I- Q% D- o4 Y
- * n; s' w; L$ o% Y% q) A1 v
- ; Use of this INI entry is deprecated, use global output_encoding instead.
6 Y4 c! r! T( r0 n" e - ; If empty, default_charset or output_encoding or iconv.output_encoding is used.' ?" u4 d) S& p& k+ }) Z. K
- ; The precedence is: default_charset < output_encoding < iconv.output_encoding$ ~7 ~, [2 ]! @0 k4 Y. h
- ; To use an output encoding conversion, iconv's output handler must be set
- v. J. P0 N9 }, _2 n - ; otherwise output encoding conversion cannot be performed.
8 {: `0 q" k2 D9 M - ;iconv.output_encoding =
2 R5 Y3 X, U. ]# E( G" f: { - }6 s w2 \- Y% E+ H4 s/ O4 F
- [intl]
& {8 S1 H5 ?9 R - ;intl.default_locale =$ z3 h! \3 _$ [
- ; This directive allows you to produce PHP errors when some error
. f6 k! ]& Z! Q) P - ; happens within intl functions. The value is the level of the error produced.
0 T; M' z4 n8 \9 m! i - ; Default is 0, which does not produce any errors.6 I* J' B m7 U
- ;intl.error_level = E_WARNING
% u2 R' M. d* I& j9 t; Y - ;intl.use_exceptions = 0
1 t0 ^" A5 G2 e3 h- `( G2 r' ~
7 l- i( K; P5 i* x- [sqlite3]( H4 k0 c& z8 D7 C6 q- ?1 |* s
- ;sqlite3.extension_dir =; z; z4 k4 U' i$ v3 e, v: Q- k
- 0 j/ @/ N0 g9 G- v- i7 v3 L. A+ W9 c6 J
- [Pcre]1 w# \2 K; s9 r8 P& a
- ;PCRE library backtracking limit.. E% x8 Z! N- g
- ; http://php.net/pcre.backtrack-limit
- e9 {; ~( }" t& S4 ` - ;pcre.backtrack_limit=100000. j' c* P; a1 U: T% j% b f
- ' Y3 f2 R* ^8 i, X; G9 v
- ;PCRE library recursion limit., I# W/ g& K8 q7 x0 n' r7 U3 y5 T
- ;Please note that if you set this value to a high number you may consume all
+ C& t! o8 }( e. V* E) ? - ;the available process stack and eventually crash PHP (due to reaching the; B* ]) F% h1 Z' i
- ;stack size limit imposed by the Operating System).. \3 J. Q# Z* s4 d# R/ i$ j
- ; http://php.net/pcre.recursion-limit# _5 \1 r! G) j) B! @
- ;pcre.recursion_limit=100000
3 V8 F1 n5 I' W3 g& S; _2 K2 i
/ m+ p' T5 k b: B2 U, R- [Pdo]) T3 x4 e# B3 M8 X5 l: [
- ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"% b/ v) D0 m) J
- ; http://php.net/pdo-odbc.connection-pooling+ z L1 A7 u' _1 Q' I* [# P5 c0 U9 x
- ;pdo_odbc.connection_pooling=strict0 K, N, z4 a$ ^
- J; t$ j; V9 {4 p; U- ;pdo_odbc.db2_instance_name/ v' \; C5 G- C6 E& O( E# Y! A
- T3 Q8 A8 C% F3 k1 o7 @% o$ x- [Pdo_mysql]
. ^* e8 e8 P* o3 Y2 O+ ^0 F0 N - ; If mysqlnd is used: Number of cache slots for the internal result set cache
3 Y8 b7 i" c! Y8 x/ W5 Z - ; http://php.net/pdo_mysql.cache_size# V+ j3 C( U3 D, a* l
- pdo_mysql.cache_size = 2000
# N1 N N* {0 Q4 Q5 p; ~) Y
* M4 s' G2 E$ S- _+ z. w* B- ; Default socket name for local MySQL connects. If empty, uses the built-in
2 B) m8 p4 h. T) L - ; MySQL defaults.: C1 c: V8 Z! j
- ; http://php.net/pdo_mysql.default-socket9 ?$ M" N1 i0 C: h% H1 H! X
- pdo_mysql.default_socket=
* U6 o2 u2 ]( L' ]9 o | - 4 s+ q" [' r+ D8 {8 x: ]* z
- [Phar]: J& x |6 p! Q4 q0 I: h! a8 D9 z
- ; http://php.net/phar.readonly
# |0 V/ P7 Z( ^ E( w. N' Y2 V0 ^ - ;phar.readonly = On
; `9 j. }2 |1 R/ r6 J3 I - 3 `* D7 c$ `8 w, `2 `& I j
- ; http://php.net/phar.require-hash
6 h' |- G o8 B& {3 _3 b. ^ - ;phar.require_hash = On
. \$ X" n0 i% V" w+ b1 K - " y& R; d7 r/ |0 ?7 ~! E
- ;phar.cache_list =1 H; t7 `, n4 ~$ {9 w
1 B7 s( u! u& O+ a1 ]! ^; ~- [mail function]' Q0 u8 w, k6 |5 @+ J: z$ ]
- ; For Win32 only.( N' i5 o2 o( s. a$ p& p
- ; http://php.net/smtp( ]- g# f! V, R( P4 S1 I
- SMTP = localhost
" O3 Q/ T5 I. H$ H% O: d$ y d( V - ; http://php.net/smtp-port
0 d3 m: z) K# d% s* }6 D2 r - smtp_port = 253 t7 n* f% _0 S4 x' ]- V* ~* L( ] G
, X2 \2 w% X" q8 i4 I* V$ s- ; For Win32 only.
+ z, |1 L) A# Y% p6 ^ - ; http://php.net/sendmail-from6 |$ O5 h4 m( w1 |2 l
- ;sendmail_from = me@example.com8 x! d" E: K) ~: u* _/ k& b
- " q3 Z4 ?5 ~8 P- G+ d
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
- q b6 e2 A8 ] - ; http://php.net/sendmail-path: [4 Y; ? z7 p/ s/ m$ d _
- sendmail_path = /usr/sbin/sendmail -t -i
0 Q2 V1 W6 Y$ S- y+ _: q6 R - ) X. v* I/ s/ p% s' ]
- ; Force the addition of the specified parameters to be passed as extra parameters
- O9 ~% d9 h* m* h: B* y- M$ K2 H - ; to the sendmail binary. These parameters will always replace the value of/ O4 K$ Z$ A* g. g4 L+ R
- ; the 5th parameter to mail().
+ Y1 N' s1 u3 W+ e) p* n {" c# ] - ;mail.force_extra_parameters =
1 u4 b7 `( J; Y/ i* o% J$ s4 i - & ?7 d: B/ A1 _; L6 Q% ^6 ^) P
- ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
3 i( y, x5 V4 \0 e4 C% q - mail.add_x_header = On$ r0 x3 t1 b( L5 o% Q/ v
* m% J$ z, z' H4 X; j h- ; The path to a log file that will log all mail() calls. Log entries include/ F$ j6 B7 g `1 W8 \0 T' i
- ; the full path of the script, line number, To address and headers.3 E0 U7 ]4 _ U, G- f5 b
- ;mail.log =) T" X+ M* g: I9 Y' \' O
- ; Log mail to syslog (Event Log on Windows).
: |" L& Q# M" x; z - ;mail.log = syslog U+ r9 \& m2 @! G9 j% E2 k# F: U
0 \' I/ N; r1 r! } X- b- [SQL]$ K Y. n! K/ u) ^
- ; http://php.net/sql.safe-mode
+ C+ Y9 f1 p& }6 }: u. z. @ - sql.safe_mode = Off: Y* }* j2 J1 |# ?2 G
- . y; ^" S: x7 i2 B( s) q4 k, G9 f
- [ODBC]
}1 a( K: U, _/ u0 G$ y - ; http://php.net/odbc.default-db, y ~5 o; e, S/ [: Y! X" a6 Q
- ;odbc.default_db = Not yet implemented( k) M# o7 u& P# }# K P
- & @/ m* p+ l, C
- ; http://php.net/odbc.default-user
6 T }' V, a9 _/ f6 @ - ;odbc.default_user = Not yet implemented
. x2 Y# u; W% c2 o
; x' w! \/ L# Z4 L- ; http://php.net/odbc.default-pw
, l- h- x& b& k+ F - ;odbc.default_pw = Not yet implemented
8 ]+ ^" c$ Z0 r( ^4 F) ]% ] - " C* W; Y5 X0 D# u
- ; Controls the ODBC cursor model.( n) d4 l3 ?2 Y; k) M
- ; Default: SQL_CURSOR_STATIC (default).
! @& n/ A- \# h* Q3 w8 d- { - ;odbc.default_cursortype
+ n+ p4 e# K* q4 `& k+ @5 R
+ E: {/ \: I- \2 \. x- ; Allow or prevent persistent links.2 M' w# k2 ~/ i- S- @" v
- ; http://php.net/odbc.allow-persistent& m8 s: k7 ]! h3 M$ t& j. Q! ~5 K
- odbc.allow_persistent = On
' e- i- t5 q7 G/ E T v - 4 f7 x+ N6 u: e$ |
- ; Check that a connection is still valid before reuse.
$ F; \4 J1 x- Q% G* T3 y- p" w - ; http://php.net/odbc.check-persistent$ Z- I1 p: F( S5 [* h
- odbc.check_persistent = On
$ ^; v3 w* D8 A3 B4 u% k; i
- s% p2 t4 G Y" `4 R8 T- x- ; Maximum number of persistent links. -1 means no limit.
$ i! H) v' G3 P3 C% S g* V - ; http://php.net/odbc.max-persistent
6 _, y" {, s9 X! y+ f; ]' W - odbc.max_persistent = -18 E7 n- O! q4 w
, D, `' W3 f1 |. e- v& Z6 n" c- ; Maximum number of links (persistent + non-persistent). -1 means no limit.! D" d: F2 ], e) K, ?/ u' l
- ; http://php.net/odbc.max-links
2 Y% _$ t5 z2 X, R& \( }) h2 I; S - odbc.max_links = -1
^; x" P. E; @/ Y" Z9 ?) v K! W: ]5 g
7 M2 ] I- Y1 y& E9 R C- ; Handling of LONG fields. Returns number of bytes to variables. 0 means- H8 W- N* @& `# K" Y6 U0 S' b
- ; passthru.
! O. \) o- e9 t$ ~3 g1 k( F - ; http://php.net/odbc.defaultlrl
\8 M6 |! c* D! G: ~4 n - odbc.defaultlrl = 4096+ I) I& [" ]. j. E! _6 m) L
- $ `+ ^* e6 C! `' o8 C1 Y8 N
- ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
1 D. O9 f$ l8 ]8 a/ ~. w5 _2 s: U - ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
$ w$ X* P4 i7 e' e0 v* _; ?; M - ; of odbc.defaultlrl and odbc.defaultbinmode
# Q. L0 M$ y/ g d# f1 T - ; http://php.net/odbc.defaultbinmode
, l( z5 I$ f! g! R! R5 x - odbc.defaultbinmode = 17 {$ `9 o7 P% o" w
3 R o9 n4 f* j6 ^/ t% d7 {- X- ;birdstep.max_links = -18 b: A9 L" @% ^5 ^8 x* a
- * V" @- v0 A( R
- [Interbase]
- i5 ?2 x5 o9 q/ B& V- l - ; Allow or prevent persistent links.) C8 E- P0 L8 D( }& g
- ibase.allow_persistent = 1
9 q# Y8 [0 E0 `" Z3 Q0 C: t; ] - 9 ]8 U' U3 c; D& B
- ; Maximum number of persistent links. -1 means no limit.
8 t+ Z! O) y/ F: S4 n# [' ]2 y - ibase.max_persistent = -1/ J% \/ D9 O1 F/ C
$ x0 K8 m- s5 b* q. F3 U& Q$ Y- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
# s9 b1 ?/ q- ~7 L( v6 I - ibase.max_links = -1
5 l, p9 N" n2 i: q2 ]1 O8 a" V
# _, T. D$ y% S8 l3 o! b; {2 }- ; Default database name for ibase_connect().
6 x/ \ b! w8 S! M6 w% Z. P7 S+ o9 F% C - ;ibase.default_db =
* R* j% M$ f3 G( `8 S - 9 m5 o. }7 c8 E" t7 R! \/ C
- ; Default username for ibase_connect().
C; }6 ~1 b7 g3 ^# h( | - ;ibase.default_user =- k u7 U% l" n8 o
- k. l6 y% J+ o* ]- ; Default password for ibase_connect().3 @5 S8 i$ w. p4 A1 \: ^/ r
- ;ibase.default_password =
' ], z( ~, h0 w; p2 h" T. O% v
1 j' i" \& B G/ F$ @- ; Default charset for ibase_connect().
0 S* A- u9 Q8 P$ |3 d1 j1 x8 h - ;ibase.default_charset =; }5 {4 ^. _* G: N$ k6 i
- ; L7 O6 C* }% u- F3 }$ u; s
- ; Default timestamp format.8 P" y! `' M# w8 I/ l* D
- ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
G3 Z8 }: p7 L6 k4 x - & F( {# i% Y, s2 ]1 Q
- ; Default date format.' {- R _ b# G6 w' F" \6 ]
- ibase.dateformat = "%Y-%m-%d"
' H- P! m7 Z9 O4 i9 D8 o: i
2 O, E9 g5 o, i0 e! M7 v4 E/ B1 |- ; Default time format.; R: P3 D) @1 ~" e8 L* b! u
- ibase.timeformat = "%H:%M:%S". Z, s5 l5 }" @7 p) A
- # y' D6 v9 Y6 O% H
- [MySQL]
9 g0 M% t5 z; s+ [; M/ s - ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
& A1 C6 |) b; E3 k - ; http://php.net/mysql.allow_local_infile7 o; D- R2 S- f) H, N8 S; G
- mysql.allow_local_infile = On
% G) D' O) T4 A# u* {/ r
. f' {9 b' R8 y- ; Allow or prevent persistent links.$ ~9 S0 Y) c6 n
- ; http://php.net/mysql.allow-persistent
7 y5 s/ Y6 C8 T" H2 W6 Q9 J - mysql.allow_persistent = On) h: R9 k, C' ~9 o+ k; q
3 e+ H4 O- a* |9 I' h- ; If mysqlnd is used: Number of cache slots for the internal result set cache z* \. l7 h! ^+ v2 U
- ; http://php.net/mysql.cache_size7 `2 y } w2 t6 v( l/ w) m
- mysql.cache_size = 2000& @+ v, c3 d! o/ n# |; q
- 4 l2 ?3 R! V% d% g0 l" K! M
- ; Maximum number of persistent links. -1 means no limit.
1 ^1 X8 [5 k6 C4 t- ^) o' O$ q. i - ; http://php.net/mysql.max-persistent
# b3 c/ @' W7 K - mysql.max_persistent = -1
+ m) Q) u" M( A ]/ b" N
. c* M) R! {, \1 x. S- ; Maximum number of links (persistent + non-persistent). -1 means no limit.: ]% y: q5 I& ?/ n, G! {
- ; http://php.net/mysql.max-links9 x1 [; l" x' A2 y7 P7 x
- mysql.max_links = -1
0 G2 G7 l3 L3 E6 N9 y5 @8 x$ Z( M( p
8 f! r& l2 y$ P2 m2 H5 n- ; Default port number for mysql_connect(). If unset, mysql_connect() will use
! |: G5 g, ^% Y5 W5 C - ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the" C) t! e, G4 \8 J
- ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look' R+ i; r H `- G+ z0 F \' P' a; X
- ; at MYSQL_PORT.
5 D1 E& K) p( F% c1 |2 u - ; http://php.net/mysql.default-port
, E2 J5 K8 ^3 J9 S5 t( j - mysql.default_port =
2 b5 m9 V3 w4 J* @7 \* b. l% ` - 4 W8 k" f+ V8 I: f" v- v" q
- ; Default socket name for local MySQL connects. If empty, uses the built-in9 B& {9 k3 P4 Y: d! \& c) G; q
- ; MySQL defaults.7 b- }! F$ s# s+ O" q( I5 L
- ; http://php.net/mysql.default-socket. J, U: N5 }( ?) |" k
- mysql.default_socket =
3 ^$ Z% h- r* \# g4 s
' j2 n3 A+ C' U) I- ; Default host for mysql_connect() (doesn't apply in safe mode).
" Q7 l2 a: q- |* j& H4 ] - ; http://php.net/mysql.default-host5 O* K! c+ Z, R& c5 u3 ?
- mysql.default_host =# A ^( N' ?2 Y9 K4 y
- ) i* k+ Y: z8 V) z/ K3 }
- ; Default user for mysql_connect() (doesn't apply in safe mode).; Z/ Q2 f% @' N- s1 L. ~( r% k; \! Y
- ; http://php.net/mysql.default-user& {) h" h7 u( }" r
- mysql.default_user =4 B3 i% W7 G) N4 {
- " p3 Y' s& V/ q s
- ; Default password for mysql_connect() (doesn't apply in safe mode).
) z+ E/ S ?* i0 A% Y- P2 l - ; Note that this is generally a *bad* idea to store passwords in this file.
! I5 x: N+ }8 b1 k4 e4 H - ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
* J2 @4 N1 ^3 ?# m" D! w - ; and reveal this password! And of course, any users with read access to this
% g* Y1 O. R% {+ K/ O* w8 i - ; file will be able to reveal the password as well.
% J- k1 ]. E3 ^6 ?9 W$ P - ; http://php.net/mysql.default-password
2 i" V. J+ l3 U" x - mysql.default_password =7 h! ]8 \8 P) P
* C D- F7 j" `- ; Maximum time (in seconds) for connect timeout. -1 means no limit. |, u8 k. i2 G6 s, [
- ; http://php.net/mysql.connect-timeout
0 O; C& H% q7 F - mysql.connect_timeout = 60
- s3 l K0 P! B& f
- D8 Q- Z* e* S- ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
4 K1 K6 `& `6 T - ; SQL-Errors will be displayed.
Z6 x; W, s9 R - ; http://php.net/mysql.trace-mode
# r$ T2 s; ~% I8 N1 Y - mysql.trace_mode = Off
5 a* R1 e3 x- P - p: w2 U3 v1 v7 j9 |
- [MySQLi]2 X5 g5 l) P7 W5 m
- " i4 q3 a4 L( S% ]% C
- ; Maximum number of persistent links. -1 means no limit.
3 m( k% h/ V$ _% A1 w+ {1 n - ; http://php.net/mysqli.max-persistent# e4 ]/ k; u2 n
- mysqli.max_persistent = -1
+ P R0 f# i2 f( M( ]% n2 l, q4 }
9 O9 r, ~1 x4 ~+ W* n- ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements: R t, t# D- E" Q) K
- ; http://php.net/mysqli.allow_local_infile2 l! a5 n! S& U* }$ z+ G9 Z
- ;mysqli.allow_local_infile = On
x! I" h9 g, Y& B1 ^, n - 6 g; a" A `8 C: R' l- B* G
- ; Allow or prevent persistent links.
% a6 } r/ L* Q6 K( V2 R - ; http://php.net/mysqli.allow-persistent# f. O/ a' ?7 L) }
- mysqli.allow_persistent = On) V) A- z+ [/ |
- 7 {. {$ q) J7 ^* }5 R
- ; Maximum number of links. -1 means no limit.
' x) [3 t8 F( a& |! l1 M5 r - ; http://php.net/mysqli.max-links
5 N, @5 F* U: y- D2 z3 q - mysqli.max_links = -1
) m& I. e& `; Q0 _ - 8 l% g ?4 G* M! D
- ; If mysqlnd is used: Number of cache slots for the internal result set cache
1 Y* W& v" y, i7 f) S* e6 @8 q - ; http://php.net/mysqli.cache_size, q- N/ ?% g+ L# R) q) U5 o6 A2 u6 ?
- mysqli.cache_size = 2000
3 H6 @- G J' P( J( @; V
& q$ R# j, r+ b' d- ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use7 L4 U: U2 T) R5 r0 N
- ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
. ^0 X/ q. `+ [) L; S( C' T/ D - ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
/ l, m* _% G t' c3 Z4 W - ; at MYSQL_PORT.& c9 w' Z6 A; D: S" d" {
- ; http://php.net/mysqli.default-port
4 p6 B& Z$ G! D: L4 o% x - mysqli.default_port = 33061 ]+ N ?, ]* N9 p6 q+ p4 m6 X! u
- * C8 n3 |" k- r+ W: ~' _
- ; Default socket name for local MySQL connects. If empty, uses the built-in K, }" w) q, b3 \7 V9 y! G2 a: n
- ; MySQL defaults.
6 g6 s. J2 N" W - ; http://php.net/mysqli.default-socket8 W' h5 y0 d: G9 \
- mysqli.default_socket =
" G' F/ d2 V/ W% k0 l - ) H/ {7 x2 Z6 V5 \1 }
- ; Default host for mysql_connect() (doesn't apply in safe mode).
" O) |5 r1 u: e$ \! t$ S7 r- P5 c - ; http://php.net/mysqli.default-host& h! J0 X7 h! j6 f) z# m! l
- mysqli.default_host =2 _' o5 s2 L2 d4 A& q
" i7 o- x. i, }- C7 i- ; Default user for mysql_connect() (doesn't apply in safe mode).
6 {1 r3 T0 X1 s' O' c$ r7 B - ; http://php.net/mysqli.default-user
5 O4 \0 f+ ^. S6 r& l% }5 C - mysqli.default_user =
, m$ U1 ~3 |, p, N0 C3 L5 ^, W - 0 N$ w" l% T2 F( b
- ; Default password for mysqli_connect() (doesn't apply in safe mode).5 O5 g) K3 t* O" ]) s# ]1 M
- ; Note that this is generally a *bad* idea to store passwords in this file.: w5 _( `0 U3 f- n! w+ _2 ^- w! E
- ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
* E6 b1 f. B) P" h3 I8 }1 `4 ~; I - ; and reveal this password! And of course, any users with read access to this* `7 g+ @% U, n
- ; file will be able to reveal the password as well.
! q+ U: c, S+ M5 v0 q3 w) u3 { - ; http://php.net/mysqli.default-pw
# z# A2 o4 h( T, ?3 g) { - mysqli.default_pw =" V/ v+ p* j( r) W3 G
- # e" T' g9 d: c2 Z' Q6 y
- ; Allow or prevent reconnect
' k8 P) o7 k5 j# X; k - mysqli.reconnect = Off
, A8 |1 W' z, ?% |& u& j
* v( W7 U, I2 B* Q. f0 ~' p( H; z- [mysqlnd]
6 N% y/ O0 u0 e; g% T0 l6 x - ; Enable / Disable collection of general statistics by mysqlnd which can be
4 h9 L2 G1 L% j. _ - ; used to tune and monitor MySQL operations.7 ?7 N5 ^6 m. s3 Q- C- v
- ; http://php.net/mysqlnd.collect_statistics
5 e; f% S; Z5 R) O. f1 l - mysqlnd.collect_statistics = On
8 ] v2 V: K8 q8 c - 1 a* \# p" j _' l
- ; Enable / Disable collection of memory usage statistics by mysqlnd which can be
, L5 E; a: x/ h - ; used to tune and monitor MySQL operations.
z. j% z0 h) e" O' l$ U% l - ; http://php.net/mysqlnd.collect_memory_statistics" z: Q: U* H' E5 Y% e7 n
- mysqlnd.collect_memory_statistics = Off
, `% l9 w3 L& T2 u0 N
/ H- }8 P w3 |' l- ; Records communication from all extensions using mysqlnd to the specified log) h2 B5 a0 @/ U) v
- ; file.
1 _7 @/ b0 T' Z, Q! Z; \ - ; http://php.net/mysqlnd.debug
. a' l' b9 ?5 J: r/ [2 r# A9 M - ;mysqlnd.debug =/ L- [7 [* ^* o# B1 C0 o# g6 Y
, m1 [2 W1 y3 b0 J- ; Defines which queries will be logged. h$ H! V2 I8 y2 H2 d* b$ i% W+ ?" Z+ I
- ; http://php.net/mysqlnd.log_mask$ B& N1 l/ ^9 Y
- ;mysqlnd.log_mask = 02 r' }$ p# U* {0 q
- - q8 d, s- S2 y$ _8 H
- ; Default size of the mysqlnd memory pool, which is used by result sets.& r$ r! v* y7 P. O2 K
- ; http://php.net/mysqlnd.mempool_default_size
1 W* e1 p/ _6 e( t/ [ - ;mysqlnd.mempool_default_size = 16000/ u! v, d9 ~; Q H# U! e6 A
- 5 l" r d3 A" r
- ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.3 }6 B3 _* U+ r* n, l( T
- ; http://php.net/mysqlnd.net_cmd_buffer_size. j7 X* M' X3 G5 Q3 K) k) o1 l
- ;mysqlnd.net_cmd_buffer_size = 2048
/ b4 u( w( q; H/ m. V
! x J3 Y* e2 r% L3 f- g) `- ; Size of a pre-allocated buffer used for reading data sent by the server in: G+ W( H; a/ F! ?, @
- ; bytes.1 A6 f& G) n/ C7 a! g
- ; http://php.net/mysqlnd.net_read_buffer_size
; K$ v# S7 [+ V) f, \4 ]) ] - ;mysqlnd.net_read_buffer_size = 32768
8 F- N/ L5 x8 D+ g9 N - + N4 z5 v- x# A! Z+ `
- ; Timeout for network requests in seconds.
! `4 ~& s B9 C4 h& g3 }# d - ; http://php.net/mysqlnd.net_read_timeout
# D7 f" C5 r7 D8 ]* t/ p& r! H J - ;mysqlnd.net_read_timeout = 31536000
1 ~3 V0 x. V$ `/ u# `4 J
' D. a& G* X0 M4 Y- ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA
+ F0 |5 q2 {8 ~$ c+ S0 a9 m# Q$ ? - ; key.5 C' I& j& D+ O! i; a4 T
- ; http://php.net/mysqlnd.sha256_server_public_key
( C) _ J8 Z# B7 ~ - ;mysqlnd.sha256_server_public_key =1 Y2 j/ j( h, K' r# d$ F/ _4 E
/ Y" T6 b( @, \) r; W- [OCI8]' _5 g5 k! `& P% _, `4 G7 K
7 G. K( Z5 p; H) k; u; ]0 o- ; Connection: Enables privileged connections using external+ U: b( q) {$ H% G1 ~. Z/ m! {+ e
- ; credentials (OCI_SYSOPER, OCI_SYSDBA)
- V) Q1 o v8 j& g( }1 x+ e& F$ u - ; http://php.net/oci8.privileged-connect
; N) p8 `3 h2 R& c# _ - ;oci8.privileged_connect = Off" @7 t- U& N& o/ `& }
3 H- G3 [2 m1 C( o- ; Connection: The maximum number of persistent OCI8 connections per
$ x) l% |% K5 A1 h - ; process. Using -1 means no limit.# A* e2 _$ L+ _. b
- ; http://php.net/oci8.max-persistent9 p3 [) f3 n* q# F1 ^7 `0 u
- ;oci8.max_persistent = -10 n( Y* u3 @1 M! X: d5 D
: W0 S1 |4 q4 N) w# m' L e- ; Connection: The maximum number of seconds a process is allowed to" s$ K) M3 p M) Q( l5 K. H1 V. S
- ; maintain an idle persistent connection. Using -1 means idle
0 w, ^0 v% J* V' J( L6 ] - ; persistent connections will be maintained forever.
! ~6 y1 L% y2 V4 N - ; http://php.net/oci8.persistent-timeout! U; r/ ]6 U# _9 _; F. d4 t
- ;oci8.persistent_timeout = -19 H% f2 i1 y3 K' z
- I% h; e) T. i4 S: \- ; Connection: The number of seconds that must pass before issuing a
, C5 }& e: C6 x* v% Z6 F - ; ping during oci_pconnect() to check the connection validity. When" g# V( E+ k7 |' z
- ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables. v; S, Z: S8 e, M* O$ x! A
- ; pings completely.# e9 ?& i" K& B- Y1 }
- ; http://php.net/oci8.ping-interval
# D6 `5 x# {4 v" b$ x) n! d4 i4 w - ;oci8.ping_interval = 60
/ L0 o7 f6 A H( F
& |9 f6 Z& z$ F* j* u$ X; D7 v% i- ; Connection: Set this to a user chosen connection class to be used& Q# x0 D7 H; ?8 I0 Q& V
- ; for all pooled server requests with Oracle 11g Database Resident# y+ E; ~2 W) O; M" k4 U
- ; Connection Pooling (DRCP). To use DRCP, this value should be set to8 O9 Z7 R- Q: m9 N# C: w; t# L: ~
- ; the same string for all web servers running the same application,4 X& F; x) Q# @
- ; the database pool must be configured, and the connection string must! t/ H% n7 k1 N5 i$ @, B/ t5 W
- ; specify to use a pooled server. v) `4 T! k7 j! R% R+ h& o
- ;oci8.connection_class =
: y/ G, F/ h# S1 ^/ W3 ^! y - ! j) p$ p* i9 F) g% z
- ; High Availability: Using On lets PHP receive Fast Application8 \+ h7 X* L& v
- ; Notification (FAN) events generated when a database node fails. The0 C* w U/ M- s6 A2 K7 @4 c
- ; database must also be configured to post FAN events.) N% G- w$ d% a6 M5 S
- ;oci8.events = Off
2 }( p* M2 y- Q0 z - 7 c/ I7 L0 G9 x, @5 N: p. ?" t0 Y4 G! t
- ; Tuning: This option enables statement caching, and specifies how
* v+ J0 `4 P. Z4 { - ; many statements to cache. Using 0 disables statement caching.$ Q8 A1 C3 r; ?+ K0 T. `0 \1 S9 ]+ K
- ; http://php.net/oci8.statement-cache-size
5 N, v1 }1 r7 R0 A$ y! _: N - ;oci8.statement_cache_size = 20
$ A c, B" I$ {% h) u - 0 L5 U: ^4 K& G6 P( X
- ; Tuning: Enables statement prefetching and sets the default number of
) k. X2 R L0 o8 z( }- r - ; rows that will be fetched automatically after statement execution.
8 {; ?7 U. u/ L' `% \: s# n - ; http://php.net/oci8.default-prefetch
3 I+ `6 \9 @2 I. z - ;oci8.default_prefetch = 100; _* w9 [3 W4 H J) r' P5 m, @! ]
- ( C: J% \6 e! {/ ? H1 K6 D
- ; Compatibility. Using On means oci_close() will not close
- E, C0 ]# R. e0 | ~* z. N) m1 A - ; oci_connect() and oci_new_connect() connections.
+ Z# d+ F% x( B8 i( e - ; http://php.net/oci8.old-oci-close-semantics
$ f( e; l A |- g5 }9 t - ;oci8.old_oci_close_semantics = Off3 c7 Y, \5 I) t6 q9 Z/ L
- 6 l" @: X7 q3 L
- [PostgreSQL]' g0 {8 O; v; T1 S
- ; Allow or prevent persistent links.$ K8 O6 Y; u% m- B) j
- ; http://php.net/pgsql.allow-persistent
" p9 t/ D, s j" |$ f% L - pgsql.allow_persistent = On
: Z* Q4 C' }) n7 J0 V - % \$ |" q8 J- [" @
- ; Detect broken persistent links always with pg_pconnect().
2 p& n( z. }. r0 W& Y7 b( }# B' V- o4 o - ; Auto reset feature requires a little overheads.
5 j1 u: `" c) f' M9 R( H" e - ; http://php.net/pgsql.auto-reset-persistent
; V0 s; o5 [( U6 N: u2 o7 D2 ` - pgsql.auto_reset_persistent = Off/ Q% O' Z( H% Q# n* K0 q6 ^! ^
! x$ \. w0 r; u A& x, c, Y" T- ; Maximum number of persistent links. -1 means no limit.# m+ ]$ X7 ?- \% A3 a# V1 p
- ; http://php.net/pgsql.max-persistent# r& U5 H5 l/ @7 j1 E
- pgsql.max_persistent = -1
+ L# ^* K6 s2 G5 @ - 1 p) K' l: x4 d5 }; U+ `" r z# U7 g
- ; Maximum number of links (persistent+non persistent). -1 means no limit.+ w! @( k% C3 r3 @
- ; http://php.net/pgsql.max-links1 x2 U+ H- H- n/ M' F; Z
- pgsql.max_links = -1
# X5 D6 Q. Q/ n% |6 U" T% G9 _
+ R# W9 p2 E9 J+ f, A3 ~8 ~2 X- ; Ignore PostgreSQL backends Notice message or not.7 `0 ^, z/ p+ N% J# L$ i$ {
- ; Notice message logging require a little overheads.
1 Y( q9 Q/ r! W3 i" b: _ - ; http://php.net/pgsql.ignore-notice
/ R* Y: H% V& _4 \ - pgsql.ignore_notice = 0
( P0 U ~* |6 P# i: l8 @0 t: Q
7 W, x! U% Q5 b8 O& ]4 ~6 S, r- ; Log PostgreSQL backends Notice message or not.- h- J- c& a- S) e+ B0 e) S' ?+ U/ X
- ; Unless pgsql.ignore_notice=0, module cannot log notice message.
1 a; ^" Z+ v: x; P3 t+ l) E0 v8 J - ; http://php.net/pgsql.log-notice
$ O" S- m+ Q- e8 M5 A - pgsql.log_notice = 0
- v9 a9 V9 ?/ P: V& U; \/ N6 n$ d
5 x/ _) A! O0 y! ?' g* Y- [Sybase-CT]4 J; \( d, Q9 v) h# G3 R0 A* a4 v
- ; Allow or prevent persistent links.
1 I) j: @8 U# N* S2 x: E - ; http://php.net/sybct.allow-persistent( }4 z: c J% z
- sybct.allow_persistent = On7 s$ Y1 Q/ Q* |- h$ h2 R
/ p8 y9 o5 l4 M3 I5 I. Q- ; Maximum number of persistent links. -1 means no limit.+ Y& |: r ^( Y, r1 z
- ; http://php.net/sybct.max-persistent# M! l' q" P. @
- sybct.max_persistent = -1
' E. k4 s6 D% J6 o' t' i5 f. a9 G
3 }! X9 ?) _+ ~+ W1 A+ h- ; Maximum number of links (persistent + non-persistent). -1 means no limit.
4 r6 |$ L) o5 x - ; http://php.net/sybct.max-links2 R# c: \/ Q t6 _4 b
- sybct.max_links = -1
) k0 M7 r7 w5 K7 v9 y
& k! |1 o/ H) q d3 Z' h( @3 x- ; Minimum server message severity to display.* W4 q2 e2 ^2 M5 q) J6 ^
- ; http://php.net/sybct.min-server-severity
$ f9 I3 G5 [# D - sybct.min_server_severity = 104 Y" Y- H4 t0 b. I% j$ i z! T
- . [' ^$ ~# F, B5 O
- ; Minimum client message severity to display.: R' \. W+ g/ u# X. q: ]6 p4 k, R
- ; http://php.net/sybct.min-client-severity' e8 P/ q1 K+ T1 q: o
- sybct.min_client_severity = 10+ [; v" b+ J: e; v7 ^, x- X
- , Q* I, V0 h- }4 m, L' R
- ; Set per-context timeout
8 p2 U3 b8 k" u. j8 U) K, R - ; http://php.net/sybct.timeout: g* K# f! F6 @8 ~
- ;sybct.timeout=
( f! a3 O! g& t5 h; H9 m8 R - # v" b) g) |2 \. j {
- ;sybct.packet_size
6 h( v2 m9 M; _2 ` E+ `
3 V7 t8 m0 I- l+ a1 I8 F- ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure.3 u/ e# J6 c% b& e* c: F+ M1 E
- ; Default: one minute5 ^: j8 ~# o0 ], Y, J) g# Z
- ;sybct.login_timeout=
) q& I/ u. G( X) k
3 o, [# V( l- H/ N6 p s- W- ; The name of the host you claim to be connecting from, for display by sp_who." Y: t5 }" o# E/ y7 S; m% Y8 R
- ; Default: none9 C# {1 o& l! B& P
- ;sybct.hostname=) {7 a9 }5 N8 D
- ; G0 r/ f! K+ R
- ; Allows you to define how often deadlocks are to be retried. -1 means "forever".
: C8 N6 K* r1 M5 Z0 R - ; Default: 0
% B, F: X1 J4 G. H7 { - ;sybct.deadlock_retry_count=4 H8 A+ j6 ^* a$ w0 T9 ?
+ x5 A2 Y0 P3 l1 m" f$ s0 ?- [bcmath]
' @0 q1 I$ S/ U6 [- B' q1 [: W - ; Number of decimal digits for all bcmath functions.
( s5 |8 z& z$ |* C! _1 d - ; http://php.net/bcmath.scale8 z+ ^' c# R# q2 M
- bcmath.scale = 0* ]6 }/ W: C( Y
- * I7 c* @' `( [7 A! Z* D) Y
- [browscap]
3 [$ ~1 P9 x# M6 t: Y; p- W - ; http://php.net/browscap' }9 I# h& R' T& S0 a* p
- ;browscap = extra/browscap.ini! Y$ y5 D1 w$ ?4 H
- h0 T! d/ k2 W% Q0 V; [- [Session]
3 s, l8 j! q! U. y - ; Handler used to store/retrieve data.
3 A8 w) P9 E& F+ O7 t4 { - ; http://php.net/session.save-handler7 G. B1 F+ b' l+ Z: o( e: P- Y" D
- session.save_handler = files
" K) ^) S2 r' H0 ^, Q8 I$ e( Q, P
8 v( _( T+ ~. d8 b+ \) ~6 I- ; Argument passed to save_handler. In the case of files, this is the path( s* {, {' b; K9 b7 [* k* v3 W
- ; where data files are stored. Note: Windows users have to change this
; c! m( O# u) k I" | - ; variable in order to use PHP's session functions.1 f0 {; f0 d% ^3 O# D4 Z& [3 b) ^* C
- ;+ x! P; M" E5 n: U' A
- ; The path can be defined as:
0 ^/ \$ C' j# ~! U - ;4 R4 T; T ]" b7 F1 m$ n
- ; session.save_path = "N;/path"6 u8 h$ e- K `2 d: |" t
- ;4 B; t. s6 r8 k& i
- ; where N is an integer. Instead of storing all the session files in! \5 ^( ~' m; W, D* e
- ; /path, what this will do is use subdirectories N-levels deep, and
" p0 U8 K) w. s - ; store the session data in those directories. This is useful if
; H" x( x+ p5 ~3 h6 s( }; o6 O: F - ; your OS has problems with many files in one directory, and is, m1 A2 [2 p0 A3 a1 H
- ; a more efficient layout for servers that handle many sessions./ H3 i" K6 \2 b' R/ U% n3 g
- ;0 _* @+ q* |/ P0 u, G
- ; NOTE 1: PHP will not create this directory structure automatically.
# ~9 l% p2 p3 D* Y2 [" T - ; You can use the script in the ext/session dir for that purpose.' J4 [# E: V/ k5 E- B( l; p4 L, f
- ; NOTE 2: See the section on garbage collection below if you choose to' n8 F4 P `/ O2 I4 C' A7 ]- n: G* j% K
- ; use subdirectories for session storage
x: H3 a: y2 f - ;
7 J6 L1 a" t# H - ; The file storage module creates files using mode 600 by default.- f$ G1 W% i4 a, Y3 r) g% c: }( W
- ; You can change that by using: f$ v- ?, L8 W: e, e" F& X
- ;
/ G1 Q# D3 o6 t0 V' @7 w$ B' X - ; session.save_path = "N;MODE;/path") L6 W0 k; }+ |2 J+ y
- ;
& i, O) `' S% W5 @# H+ n) ]& s - ; where MODE is the octal representation of the mode. Note that this- p. P# k( Q0 M, |' r7 l
- ; does not overwrite the process's umask.
0 Z( @5 O5 x: Y& O - ; http://php.net/session.save-path4 P8 d3 n- `2 ~
- ;session.save_path = "/tmp"
; M, g( {$ ]& S, N% L/ O
0 ^9 n: o7 ]7 }3 _5 `1 M- ; Whether to use strict session mode.2 U/ {0 G5 h: J; w
- ; Strict session mode does not accept uninitialized session ID and regenerate
; k8 V: x! V h0 l - ; session ID if browser sends uninitialized session ID. Strict mode protects! C1 D% ]& z9 ?1 k) `' [
- ; applications from session fixation via session adoption vulnerability. It is
9 Q7 Q# `- T& Q - ; disabled by default for maximum compatibility, but enabling it is encouraged.: f1 J" P- C% p' y. Z, n4 m
- ; https://wiki.php.net/rfc/strict_sessions8 q0 S) y" {5 b0 z
- session.use_strict_mode = 0! g, W$ A% o5 S0 ~* o0 @8 X+ k
" `! r9 A& ~0 |+ O; L/ o- ; Whether to use cookies.
7 s7 ?. U) `+ @" O: ` - ; http://php.net/session.use-cookies" F% m1 j% H& S' c
- session.use_cookies = 1
# H2 P$ A* ]5 {1 [: Z; P$ R
! v# n8 M m2 k6 w) e4 s- ; http://php.net/session.cookie-secure( P" Y3 ~1 H; N; Y1 ^. G
- ;session.cookie_secure =
8 Z7 O! N- A+ U# e - $ l, X3 O5 Z6 {& V& L5 R
- ; This option forces PHP to fetch and use a cookie for storing and maintaining
. W6 }# u1 j. Y# X/ F1 H' i/ I# t; [ - ; the session id. We encourage this operation as it's very helpful in combating
9 T9 ?3 j4 V7 ^ ^% f - ; session hijacking when not specifying and managing your own session id. It is
1 ?! ]; c: O0 f1 g - ; not the be-all and end-all of session hijacking defense, but it's a good start.
$ p3 Q0 u; z0 P) k; P - ; http://php.net/session.use-only-cookies" D8 S: [, j: C6 l* R+ @& g
- session.use_only_cookies = 1$ `" ]; w/ h! h: C X% s3 H
+ p' {9 r1 e- T# v" N- ; Name of the session (used as cookie name).
; \' U0 r9 [! a( i - ; http://php.net/session.name
9 h! N3 o' T/ L1 N+ f - session.name = PHPSESSID
/ q! q% z' ]* v8 W, Z4 y% c
6 p! T" E! K* }2 ?$ Q. V0 D/ k- ; Initialize session on request startup.- G; \2 {1 x; [2 z0 T; c! @0 M" x
- ; http://php.net/session.auto-start9 _+ p/ e k2 X& X
- session.auto_start = 0" m' B$ ^( M; V! n) I4 `
- 8 c6 Q" w; |$ A3 X8 h9 I
- ; Lifetime in seconds of cookie or, if 0, until browser is restarted." v8 C7 _8 R$ W. e! d1 M
- ; http://php.net/session.cookie-lifetime( p/ q8 y# [* m
- session.cookie_lifetime = 0" ]' r8 G& S9 t: C& Y
# ^# S' b& U+ Q- ; The path for which the cookie is valid.
7 D( H1 A: F& y - ; http://php.net/session.cookie-path7 J& I* |# p+ T8 B- I
- session.cookie_path = /& n( u4 u1 D+ `' ~# H
) q0 y' H9 {. a0 F5 ^- a" g6 l- ; The domain for which the cookie is valid.
1 u3 \$ W* E9 S, c/ N' s. F - ; http://php.net/session.cookie-domain
' Z; j5 s- G' u: i" Y - session.cookie_domain =
1 y) B: b4 b- ?# F
% ^+ X/ a* T6 x# v9 F; _8 k5 O- ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.: X$ |8 z n& _8 s8 U1 Q) ]3 I
- ; http://php.net/session.cookie-httponly
$ x3 U& J% ]2 s+ c' x - session.cookie_httponly =9 E$ u! k, v2 b/ ]# s
1 E6 Z/ B4 b- L; r/ E- ; Handler used to serialize data. php is the standard serializer of PHP.+ ^! ^1 {% S* d" E' o, K2 t' f8 @( d
- ; http://php.net/session.serialize-handler
& g5 ~5 J9 r: P - session.serialize_handler = php4 E* U) |! Z z5 r J& n
- ( P) D# R6 d- z5 u# O3 x
- ; Defines the probability that the 'garbage collection' process is started
) `# f! o4 G; r. r - ; on every session initialization. The probability is calculated by using
( Q+ ^ }0 Z9 b, K - ; gc_probability/gc_divisor. Where session.gc_probability is the numerator+ `, k- |+ \& F8 v
- ; and gc_divisor is the denominator in the equation. Setting this value to 1
% l4 k) O& n) I) k, \) l& E - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance0 Y# |1 A& X/ c" W9 @
- ; the gc will run on any give request.
+ q p8 w5 ]$ q+ O3 c* Y - ; Default Value: 14 u& y7 `3 d j6 n
- ; Development Value: 1
5 T7 _8 H/ ? g5 ] - ; Production Value: 1
) p& L: @, s8 \# M, l - ; http://php.net/session.gc-probability
) j- i& L0 x% h; W* g4 D - session.gc_probability = 1- ?; n) ?" w+ O) B
- 1 q' b5 n) I5 G! `. |. G
- ; Defines the probability that the 'garbage collection' process is started on every+ U5 v# k) l7 l% j5 n
- ; session initialization. The probability is calculated by using the following equation:# I. Z( Y! m* c/ [3 }- p
- ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and- Y- v$ {8 ?9 f; q" ~& C U( O3 W
- ; session.gc_divisor is the denominator in the equation. Setting this value to 1
9 a) h, u" e9 Y7 s' Q9 R - ; when the session.gc_divisor value is 100 will give you approximately a 1% chance3 J! D' e) }& {+ a: c; q, p& z
- ; the gc will run on any give request. Increasing this value to 1000 will give you
! {' O- c- }7 E7 w - ; a 0.1% chance the gc will run on any give request. For high volume production servers,
$ q; P. k; c7 [7 S/ j' P - ; this is a more efficient approach.: O9 @9 T! @, }; H0 B4 s
- ; Default Value: 100
* E ]. G6 d! {- ^9 { - ; Development Value: 1000
6 k0 Q8 @* Y2 j3 i, L7 L. M: \ - ; Production Value: 1000
: p& K' M: T. _$ I8 u1 H: M - ; http://php.net/session.gc-divisor! ^8 y4 R2 Y4 e9 r
- session.gc_divisor = 1000! } S; m; p. m1 r" Z; B* T, K `
I9 }( X2 ` Y* S! M8 Q- ; After this number of seconds, stored data will be seen as 'garbage' and$ x/ F' r, w4 }& x. u
- ; cleaned up by the garbage collection process.. G8 W/ }7 ?+ i+ k1 P
- ; http://php.net/session.gc-maxlifetime3 T6 V& B, j2 k. V& M+ z' o
- session.gc_maxlifetime = 1440
# n6 p: k9 R M- S5 n - , r( m5 L1 p4 }. u5 g! Y- Z
- ; NOTE: If you are using the subdirectory option for storing session files/ B' G" |4 w( G) Y# f
- ; (see session.save_path above), then garbage collection does *not*
8 @5 Z8 c0 F' g4 U3 u U7 P3 ` - ; happen automatically. You will need to do your own garbage
5 |& t9 u+ O+ _: ` - ; collection through a shell script, cron entry, or some other method.
: `* s9 t Y) }( E, m - ; For example, the following script would is the equivalent of9 }- V0 X6 y! b# |
- ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):2 _3 c$ F6 F2 ]4 w/ h
- ; find /path/to/sessions -cmin +24 -type f | xargs rm
9 K3 K+ T5 T4 M. f6 T2 o8 ^ - : y/ w. B- V# ]( \6 y: n
- ; Check HTTP Referer to invalidate externally stored URLs containing ids.
6 D N8 A& b: X2 T/ {7 k - ; HTTP_REFERER has to contain this substring for the session to be
0 F! p2 @6 P1 ]. `6 n - ; considered as valid.' g+ ~& H1 D6 l9 l
- ; http://php.net/session.referer-check/ _; X' Q2 w7 W; L) ]* O( ?2 B
- session.referer_check =# u i, q% z4 k, w% g0 Z S% u0 }- _
# }. |$ V* H+ ^, E+ j' \- ; How many bytes to read from the file.
$ D4 z7 u. l! W% w) D& {- g" }' s - ; http://php.net/session.entropy-length5 Y+ r3 i) ~: p. P( _) Z
- ;session.entropy_length = 328 \' m2 H9 @) a1 c- N2 \2 x2 O! J
3 r* y# c2 `: Y- ; Specified here to create the session id.* I5 @. S1 b$ \7 M" z: a5 @+ @
- ; http://php.net/session.entropy-file
, s: O/ X+ K* @$ T- } - ; Defaults to /dev/urandom+ i" A* j1 O) L" V0 ]' p% W$ O. x
- ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom
/ U# T7 j8 K4 l2 n& K- O4 P - ; If neither are found at compile time, the default is no entropy file.
! u6 n" u6 x* }/ l - ; On windows, setting the entropy_length setting will activate the
$ \2 g+ @9 u* r8 d! V1 p - ; Windows random source (using the CryptoAPI)
3 d+ S8 M! E5 h2 H - ;session.entropy_file = /dev/urandom2 }- M0 U8 l: b; E% C. l s
- ( }& Z4 ]4 l% V4 U+ i
- ; Set to {nocache,private,public,} to determine HTTP caching aspects% F7 U7 D) D2 }
- ; or leave this empty to avoid sending anti-caching headers.# }1 i; C v2 x8 x% q0 E
- ; http://php.net/session.cache-limiter
: T* N) j* K5 e - session.cache_limiter = nocache4 B: F! E! j3 e2 k! H
- 8 s7 q0 U6 ]' Q8 r6 Y
- ; Document expires after n minutes.1 ~9 @" R9 `, R/ p5 k
- ; http://php.net/session.cache-expire/ C! e _- D0 l4 B9 I
- session.cache_expire = 180* O% y$ o! U- F7 R% A# w
/ p0 L$ _+ K/ L k- ; trans sid support is disabled by default.
/ C. p) R+ C7 r( j - ; Use of trans sid may risk your users' security.0 w8 w5 |" W; \0 \ {) [0 Y
- ; Use this option with caution.
; ^9 `" M, f* v - ; - User may send URL contains active session ID
) v$ P: {1 _- `, Z - ; to other person via. email/irc/etc.7 q- }9 ^" z! O* _$ g/ u: a' I
- ; - URL that contains active session ID may be stored+ y% X; @/ a+ q3 G% T, d5 Z
- ; in publicly accessible computer.
% X. q+ D J$ V/ z9 Y% K- q - ; - User may access your site with the same session ID. \7 B% g4 n( n
- ; always using URL stored in browser's history or bookmarks." q( d9 l8 B$ P u
- ; http://php.net/session.use-trans-sid
) H% S) L4 Z5 s* @ - session.use_trans_sid = 0
& S% K) U! M& q# {% P( Z! P/ M. E/ d. ?
$ P) B: j( e) d7 s2 o- ; Select a hash function for use in generating session ids.
' }/ W, k- g7 Y) k; j& i - ; Possible Values
7 X; E5 `( D2 b# R) N- Q& m - ; 0 (MD5 128 bits)! G3 |+ X# ~3 n+ F9 |. d+ Q
- ; 1 (SHA-1 160 bits): o3 I, e- ^8 @2 e$ X
- ; This option may also be set to the name of any hash function supported by
* ?( M% P Z( }% R" [ - ; the hash extension. A list of available hashes is returned by the hash_algos()
, J6 _# B& `6 T: w$ { - ; function.* J3 Y- E2 S2 u1 j* |
- ; http://php.net/session.hash-function
$ X1 B" i+ B) q( j - session.hash_function = 0
6 x" Y& M$ g/ r: e
7 C0 i! u( N F! z- ; Define how many bits are stored in each character when converting
6 M5 @! z1 H, p0 y9 q - ; the binary hash data to something readable.
u% V6 o& q0 z* z - ; Possible values:
: o# [1 s, |" W8 H, W - ; 4 (4 bits: 0-9, a-f)
) a# H; L: s. ^& C" G. ]4 d - ; 5 (5 bits: 0-9, a-v)$ C$ c7 ?3 S$ D' A2 C) P
- ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")- f% g5 Z$ ?3 s/ k; I$ n
- ; Default Value: 4$ D5 A+ z- I; _3 X
- ; Development Value: 5
7 c! Y( o; q+ [" h. k - ; Production Value: 5/ e+ \, z7 l2 [' j- L; `3 @
- ; http://php.net/session.hash-bits-per-character
7 \* f& L) v6 a$ j1 [0 Z9 t - session.hash_bits_per_character = 5% J+ z% n _8 J3 {
- ( p! a' a) o/ w/ a0 F2 `( u
- ; The URL rewriter will look for URLs in a defined set of HTML tags.
* p2 D7 i: W3 A - ; form/fieldset are special; if you include them here, the rewriter will
2 F# c( x4 V/ o4 W - ; add a hidden <input> field with the info which is otherwise appended
' s& C3 n% z `( J6 x* P - ; to URLs. If you want XHTML conformity, remove the form entry.0 O4 j* T7 u- @/ f
- ; Note that all valid entries require a "=", even if no value follows.
! A; C1 y, s& f% a - ; Default Value: "a=href,area=href,frame=src,form=,fieldset="
; C( E: f) @" {; n0 X - ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; x; }1 y- W: K: X' h, R
- ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
& u6 E+ F+ h* F - ; http://php.net/url-rewriter.tags
" r8 r' \0 ?' {/ o8 [& } - url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
: P* c! x3 {4 i' O, z/ W - 6 h k$ A$ m0 T$ Z- L2 d
- ; Enable upload progress tracking in $_SESSION
9 e0 I0 [: z* ?5 o) ^ - ; Default Value: On
4 [/ T/ U( }9 R- N' N& Y: ` - ; Development Value: On
2 B7 |/ y I3 h4 @7 t! ]$ z - ; Production Value: On1 x) W2 u4 P5 e' ]0 b- p
- ; http://php.net/session.upload-progress.enabled
1 v$ Q) N* A+ x+ P& } - ;session.upload_progress.enabled = On
9 Z* P* a2 g2 E/ z$ i: \ - - l0 B1 k3 Q( r. ^
- ; Cleanup the progress information as soon as all POST data has been read
8 U) z; o* U9 q9 d8 E - ; (i.e. upload completed).8 I1 h, h) v# H- ]) Y, q! I/ r/ R2 o
- ; Default Value: On
5 E0 ]& Y& ~" V6 h - ; Development Value: On
9 ?8 Q3 N% V/ B7 L2 K) t9 W - ; Production Value: On# ]( w, C. {% R3 U5 h) E \$ w
- ; http://php.net/session.upload-progress.cleanup9 b' m' u( w# x, _+ M; Q; k7 u8 E& I
- ;session.upload_progress.cleanup = On, v; r8 H6 P7 ?3 I1 b# u7 O; j
& K2 a- i" B7 }" X! R! D" J- ; A prefix used for the upload progress key in $_SESSION& w' ]4 P- q$ S# G( d; j- A# ~, Y. C
- ; Default Value: "upload_progress_"
8 E( l% i g* t% C1 J - ; Development Value: "upload_progress_"
! }3 c! j o7 b6 d+ E: V - ; Production Value: "upload_progress_"' u, B+ l7 i; V k
- ; http://php.net/session.upload-progress.prefix% T: A& Y! J* N
- ;session.upload_progress.prefix = "upload_progress_"
$ `* S9 f0 E* @% D: {8 O9 h - }9 t2 t% P- _, F
- ; The index name (concatenated with the prefix) in $_SESSION
; O1 `! p6 {$ s3 E1 N) B - ; containing the upload progress information
7 s; g9 i- c' t/ h0 R) w - ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"
1 k# k F5 s) i/ ]/ c5 S( c - ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"0 E* W" P. Q* [2 ]; W1 U, T+ P
- ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS", F+ z7 O5 {. q+ [" b
- ; http://php.net/session.upload-progress.name; S+ J: I- n" |2 v; l
- ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"* h; D- D) Y, Q; }) b8 d: ^
- # b c6 C- r3 y) [7 S
- ; How frequently the upload progress should be updated.# Z% ^' h3 ^4 z+ w* I
- ; Given either in percentages (per-file), or in bytes0 a: J! t5 j. f( W- m; A' o3 E
- ; Default Value: "1%"
- V* @% w# Y6 g" ?% i3 t - ; Development Value: "1%"
! U) y/ f2 }- C - ; Production Value: "1%"
8 P' V7 |4 K4 S3 K2 ^$ ] - ; http://php.net/session.upload-progress.freq
G/ F. A3 r: N s$ J, h - ;session.upload_progress.freq = "1%"' K9 O, ^& a0 s1 ^2 w: _/ z
- 9 O$ @: C8 V8 E& s3 S
- ; The minimum delay between updates, in seconds
5 z7 z( @$ L) g) W* |) X - ; Default Value: 1/ f N8 X2 H0 U' W; }
- ; Development Value: 1
1 M8 E% J) g" {3 K2 K - ; Production Value: 1. S: l4 t8 x/ W+ t! `
- ; http://php.net/session.upload-progress.min-freq" b6 P. T \. Z6 ~1 @2 ^9 K
- ;session.upload_progress.min_freq = "1". |% i+ u' g" j4 ]. ?3 s
2 t! @! ?0 q1 W P- [MSSQL]
1 r9 N$ H! U' T - ; Allow or prevent persistent links.
9 h/ ~* q$ `! x8 R - mssql.allow_persistent = On8 P8 M0 Z7 M' Q, H
% q* p$ k3 E0 v' I9 _% i$ C$ @- ; Maximum number of persistent links. -1 means no limit.
8 W" j5 I3 @8 o: b - mssql.max_persistent = -1
8 G0 _6 I3 x+ R
) T; `( y* h9 w' Y) q- ]- ; Maximum number of links (persistent+non persistent). -1 means no limit.
4 q& v/ S( M6 X" l; u - mssql.max_links = -11 o& {5 ^6 @0 U; R5 D
- : w1 k% K* n1 F0 V) |2 j' U& z7 l
- ; Minimum error severity to display.- k4 ]& P- h. S" T) N Y; {
- mssql.min_error_severity = 103 r3 D8 p, {! `% j; W* `. o
5 }/ T" V- Q' V* N" \/ `( d- ; Minimum message severity to display. @/ Z }4 M/ n
- mssql.min_message_severity = 10/ X# f* P% s6 j) y
2 Y2 G# T( B" H/ V' E: ]& C- ; Compatibility mode with old versions of PHP 3.0.
7 p3 a% b: N: Y5 I5 e - mssql.compatibility_mode = Off* ~8 b; N) t v+ ~% M" G6 i5 e
- % _% Y) G" b& [
- ; Connect timeout$ E9 L/ o5 z; D* `& E
- ;mssql.connect_timeout = 5
' C1 g! d8 F3 p; o1 G( S7 n6 h
; Q3 o( o0 u9 x4 W4 @$ Q- ; Query timeout+ T. W! |4 M7 S8 F. M
- ;mssql.timeout = 60* o# r9 A! H) n
- & c, G: {% O ] Z! U8 X: O$ N/ Z x: v
- ; Valid range 0 - 2147483647. Default = 4096., P6 T) {5 G$ b5 j
- ;mssql.textlimit = 40960 ?) R9 G" |4 N- a0 \+ v
- ! q2 ~" ^5 e* E7 @4 U% B
- ; Valid range 0 - 2147483647. Default = 4096.
( O( z% l, O% ?6 A. T" _. k - ;mssql.textsize = 4096
' a6 { J2 I7 v+ y, U, g% z: V
% X) M9 n3 f. Y5 N9 _& |: t4 {- ; Limits the number of records in each batch. 0 = all records in one batch.
. a" O" P! g- {/ K2 I - ;mssql.batchsize = 0
+ Z, b9 J8 Y" ? - & O9 s$ {$ U" @$ F' ]) H5 J3 I
- ; Specify how datetime and datetim4 columns are returned
* T6 e6 [0 f# }- D4 u; W - ; On => Returns data converted to SQL server settings
2 v# M$ D6 {$ q3 x - ; Off => Returns values as YYYY-MM-DD hh:mm:ss1 R3 [# J* K" b% D8 t9 u$ b
- ;mssql.datetimeconvert = On
6 W, ?2 p6 f/ j, w
6 G- T9 `/ t$ D7 `1 t4 f- ; Use NT authentication when connecting to the server
! s1 y) Y: m* W' @' S - mssql.secure_connection = Off+ _+ K Z1 d. x4 A+ D. X% U' O
6 a# t5 _ U r- ; Specify max number of processes. -1 = library default
/ X! w! p L& P- b" |) Z6 ?8 T - ; msdlib defaults to 256 N. _0 v+ K4 C! Y' R1 R( @
- ; FreeTDS defaults to 40965 ?1 j% P/ g( a2 V
- ;mssql.max_procs = -1
; E9 b# n& X8 H
9 @$ [; P o- w4 J0 z/ m1 m- ; Specify client character set.! ~3 M0 n$ M1 [$ O0 e ]' n
- ; If empty or not set the client charset from freetds.conf is used
* e% }( P8 C3 ]8 q& X8 C/ N" _ - ; This is only used when compiled with FreeTDS
3 a' o+ i- L& R- V( X - ;mssql.charset = "ISO-8859-1"
* b7 E/ S) S+ t2 }) T! | - . ^ o3 V) C& T% {* v
- [Assertion]7 |0 q: _% Q& {& @8 S
- ; Assert(expr); active by default.
8 t' X8 v9 n |! h4 R0 z* M5 x( ~ - ; http://php.net/assert.active- M6 P! y( m5 E4 e- r
- ;assert.active = On$ K `- t4 @4 o: p
- 9 U, W+ W& a' N( U5 h
- ; Issue a PHP warning for each failed assertion.9 \9 q* J" i2 D
- ; http://php.net/assert.warning
9 B3 m2 E' O( y- M* ]/ p: S5 s - ;assert.warning = On& l/ |! P/ _. f0 r) M" i' z
- ! O) Y, J- ?" S6 D" G% `
- ; Don't bail out by default.! e, M1 P# I7 ]% y
- ; http://php.net/assert.bail
, p& H+ C% ?) k6 w% C7 Y - ;assert.bail = Off
) n4 U/ @' t `% X+ a" B3 u) T
9 ]! M3 Z# E0 d0 l4 R: z- c- ; User-function to be called if an assertion fails. K$ q) H( [5 h' Z2 ^
- ; http://php.net/assert.callback; \9 n8 ]! Y$ h% D2 c( ~$ a! z( l
- ;assert.callback = 0
/ J# v9 U# y9 L; M) ?5 Z; j9 m
7 _0 P2 i$ ~7 A! v9 j' u- ; Eval the expression with current error_reporting(). Set to true if you want
* r% d( h5 L3 p - ; error_reporting(0) around the eval()." l! [, c2 q3 [7 h/ w* `9 S7 L
- ; http://php.net/assert.quiet-eval- K/ M! A2 ^4 c+ G
- ;assert.quiet_eval = 0" j! [) U9 m+ O
; ^& L! ]* l, e9 }0 J- [COM]+ E; U4 ^1 G+ N: R' T6 _8 M
- ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
/ X- s2 X/ v {. ?1 m7 o - ; http://php.net/com.typelib-file- g4 _* A) E% l$ U; a! U
- ;com.typelib_file =0 u2 }& l$ h, G4 F5 t* L M
& |7 Q. x# J4 V( Z+ w0 S- ; allow Distributed-COM calls8 a: G7 s7 g. d% S4 d% N& k
- ; http://php.net/com.allow-dcom
+ W' ] k% d; u$ ]+ u7 N) F - ;com.allow_dcom = true
% u. s% y5 B( N/ D - w4 G/ C u6 s, }
- ; autoregister constants of a components typlib on com_load()) u" C7 x* }5 i1 U
- ; http://php.net/com.autoregister-typelib" s* m5 z O) t* [' H" T9 q
- ;com.autoregister_typelib = true( S: Q6 `6 v: `, q; A- y
/ t$ a" O9 ]3 ~- ; register constants casesensitive& G" ?6 D+ O$ H. `) J+ i5 f# Q
- ; http://php.net/com.autoregister-casesensitive1 d$ I2 f! a9 e) E; H7 [2 l
- ;com.autoregister_casesensitive = false# M ?- B, C! k3 M' N* x
- \7 s) q' W0 y' |* l( }
- ; show warnings on duplicate constant registrations2 e: i$ f; y/ P6 |! z8 I7 h6 n% c
- ; http://php.net/com.autoregister-verbose& G% E: g8 K7 o* |% A5 |; J: m
- ;com.autoregister_verbose = true8 R6 {- {9 ]: ~7 t1 M: s5 _
- 7 k1 {- Z' u9 Y* O# [2 K
- ; The default character set code-page to use when passing strings to and from COM objects.
" V- _, d8 \) h/ n6 L7 }; Z - ; Default: system ANSI code page; q1 q' g4 R* o
- ;com.code_page=5 ]: x1 s1 T8 \* @( \; @
- F# K9 k! J6 Z3 B$ v( y- I% i- [mbstring]+ c1 r4 W) I7 r
- ; language for internal character representation.+ V' O1 [9 w( L7 b7 C3 t, |
- ; This affects mb_send_mail() and mbstrig.detect_order.$ I. D& X& C5 {" u; h
- ; http://php.net/mbstring.language
j2 ~- W+ Y/ ?+ y$ s3 V - ;mbstring.language = Japanese
% Q! X" t, X7 |
Z- @$ K; b- g! Y$ ]0 L9 E- ; Use of this INI entry is deprecated, use global internal_encoding instead. `! i! z- G* r/ y" ~8 g
- ; internal/script encoding.
3 b$ r* u* h2 x# t" y+ U) Y! Z - ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)( Q1 \$ n$ a/ p' d( G% m9 m: U
- ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.& B4 r* ]2 @3 P" D! H3 u
- ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
) h5 ]& b. ], r0 N6 Q. _$ n - ;mbstring.internal_encoding =" i/ j! u, O" g* f1 G4 w
6 ^( e' v5 T' ~- ; Use of this INI entry is deprecated, use global input_encoding instead.
$ c5 R" f3 Z" Z9 T% F% V - ; http input encoding.
/ W# S% T5 S9 R: m; R( N - ; mbstring.encoding_traslation = On is needed to use this setting.
# a! K, ?# C0 e0 W9 `& I7 }. |( G - ; If empty, default_charset or input_encoding or mbstring.input is used.
- O( E( f* X: {' h$ F9 s+ J - ; The precedence is: default_charset < intput_encoding < mbsting.http_input N* K7 N. |2 H+ R, t
- ; http://php.net/mbstring.http-input
* K$ Z Z+ x) ~/ s' `/ l" v! E" K - ;mbstring.http_input =$ G" c. f4 V- C( i5 h
' v; `8 ?) d1 o9 H; \- ; Use of this INI entry is deprecated, use global output_encoding instead.
+ d- X7 v8 v/ Z8 z9 n* M2 y, X# z* n - ; http output encoding.
- {0 Y* D- T6 a& D" C - ; mb_output_handler must be registered as output buffer to function.
* p; f" _( _- Z6 A+ j# b - ; If empty, default_charset or output_encoding or mbstring.http_output is used.) I7 z4 @. G9 v5 x5 u
- ; The precedence is: default_charset < output_encoding < mbstring.http_output
, `% C4 C; _9 |) O0 T2 d2 W& D' N - ; To use an output encoding conversion, mbstring's output handler must be set. L$ `( T* a2 y: ~$ ]: Q w
- ; otherwise output encoding conversion cannot be performed.
' G4 u8 {/ p" l6 r" I& \ - ; http://php.net/mbstring.http-output4 x/ a( L# p8 h& K8 w
- ;mbstring.http_output =
( R; W) i4 t% N$ X! L2 A& V7 C( [
, D& [8 l$ A9 e% n- ; enable automatic encoding translation according to
! V2 F& T0 a8 i0 X - ; mbstring.internal_encoding setting. Input chars are( K6 h5 `# q Z4 Z
- ; converted to internal encoding by setting this to On.
# E0 l- P9 h% j( |$ L' L: N - ; Note: Do _not_ use automatic encoding translation for2 y. p# G' {+ A: ]
- ; portable libs/applications.2 h& }7 b, c5 i' Q$ N7 E
- ; http://php.net/mbstring.encoding-translation
% l B# l6 O) F O% o% U# ? - ;mbstring.encoding_translation = Off
/ l( {: M ~. H- S L( p( N" M - % l" u- H8 y! p9 @' J
- ; automatic encoding detection order.
( U4 l* C( }; N( D* t - ; "auto" detect order is changed according to mbstring.language
' M" [5 v$ M$ Z* X: g* y r2 x$ ?+ p - ; http://php.net/mbstring.detect-order, r5 B$ \0 e- u
- ;mbstring.detect_order = auto3 C8 @0 H n8 y0 y
- 7 L3 F' j6 s3 V6 |
- ; substitute_character used when character cannot be converted
% ]' c P0 [* V; n) l" M( X+ L" k - ; one from another
3 P. g% l! \2 G - ; http://php.net/mbstring.substitute-character x2 {! S3 m( A, r6 t
- ;mbstring.substitute_character = none
& c, S6 o* U; ]. K8 O8 E - 0 T( g3 d) v" e4 i
- ; overload(replace) single byte functions by mbstring functions.
1 E) \9 h# y3 i; _. _. O' K! N) K - ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
( z! h+ n8 v7 n! z/ A1 j - ; etc. Possible values are 0,1,2,4 or combination of them.
5 m+ W7 C' ?; ^/ G3 t( l- P - ; For example, 7 for overload everything.& _- L. \& I! K
- ; 0: No overload
; b: p; K& t8 b! g8 f - ; 1: Overload mail() function
$ t% p& |( i+ d2 S2 w! H5 M - ; 2: Overload str*() functions
; }5 |' ^0 I; b9 n5 V+ x7 j, H* K - ; 4: Overload ereg*() functions
; O5 g! i+ v; w - ; http://php.net/mbstring.func-overload3 X. h- R, s% A5 j
- ;mbstring.func_overload = 0" K( |9 Q$ J. r. _4 X) _1 q
- ( z: g% X* M3 L: [
- ; enable strict encoding detection.! v% }. X$ x" `+ L
- ; Default: Off
4 q' g( w9 ]0 b8 a& H- t- n7 P - ;mbstring.strict_detection = On
. Y7 j: u2 W, E3 { - 0 P( w7 @8 X" Z5 o# {
- ; This directive specifies the regex pattern of content types for which mb_output_handler()
: i6 C& c, C% b3 t, D - ; is activated.) }6 Q2 @" m5 x
- ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
; O7 Z/ }! O2 Q9 t) ^ - ;mbstring.http_output_conv_mimetype=
' W# Z: r6 K3 K" R" ]7 y1 g' n - : ~% r l" Y6 E+ S T1 S
- [gd]
( `+ _& B/ s6 Q# G - ; Tell the jpeg decode to ignore warnings and try to create
1 i) S/ L* V' E) L - ; a gd image. The warning will then be displayed as notices
2 N$ f) j" W6 j3 K6 _ - ; disabled by default: L, b1 D9 o+ E8 D
- ; http://php.net/gd.jpeg-ignore-warning* B8 K$ g, |! O" {7 M4 L
- ;gd.jpeg_ignore_warning = 0& E) T9 d. `6 p+ {, l" M7 w
" ?9 x" P i! h6 w8 q9 H4 L- [exif]
- W1 `8 \# d) J R5 P0 F$ ~2 u - ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
" r# e# _$ K; G* h9 | - ; With mbstring support this will automatically be converted into the encoding
: B4 q3 H! x. X5 ` r8 {; V8 M. s. } - ; given by corresponding encode setting. When empty mbstring.internal_encoding) h: _7 t2 p) w: V
- ; is used. For the decode settings you can distinguish between motorola and$ J3 J- K' W- W( g8 x& s3 P
- ; intel byte order. A decode setting cannot be empty.8 [4 Z* ?! b$ {4 J
- ; http://php.net/exif.encode-unicode
' [. a3 v2 [# V* _ - ;exif.encode_unicode = ISO-8859-15
' E1 U/ t2 e+ }' B% \1 J0 B - ! \5 B: O# B( C4 C$ L9 }
- ; http://php.net/exif.decode-unicode-motorola+ j$ F% x5 t, S1 ^* L( J
- ;exif.decode_unicode_motorola = UCS-2BE
/ }; u; d+ r, h* B0 b1 D: Q; [ - . q: y5 G+ @; V
- ; http://php.net/exif.decode-unicode-intel( p- a# s( r" W$ s& k
- ;exif.decode_unicode_intel = UCS-2LE @" b3 f1 L7 Q0 d, f
; d! p5 s2 @# z- ; http://php.net/exif.encode-jis
6 ^. l& w4 J2 x" ?' V: ~ - ;exif.encode_jis =
9 Y& L0 o# O: x/ x F/ Z, @
7 z3 w9 m7 e$ q1 Q' v* X2 _5 F' D& ^" s! X- ; http://php.net/exif.decode-jis-motorola
( x7 L" D, X# a - ;exif.decode_jis_motorola = JIS
. I) y$ E& h/ x9 m+ |" {5 h* {! ?
% n8 ]% y8 u! c6 L0 |; f! A- ; http://php.net/exif.decode-jis-intel
: a+ q9 l) _4 X1 y - ;exif.decode_jis_intel = JIS
* u1 o$ C% r! Y+ i
$ ], W* J% U- x; k/ J3 c# B" Q( M- [Tidy]# F8 z/ a* y" |* G0 m. ^
- ; The path to a default tidy configuration file to use when using tidy4 m* k, C' Q2 d1 l+ l
- ; http://php.net/tidy.default-config ?2 e$ J' o6 a( M* z
- ;tidy.default_config = /usr/local/lib/php/default.tcfg
5 _! y8 }0 b) o% v
( U6 S4 Y' a9 w5 X4 W& R, G" i2 t# m- ; Should tidy clean and repair output automatically?* r$ X1 B4 p5 @* n% j4 L" X
- ; WARNING: Do not use this option if you are generating non-html content
/ t$ v3 C/ I7 n. Y - ; such as dynamic images$ U3 _9 u+ E3 E% [* i; j
- ; http://php.net/tidy.clean-output
7 x' z3 g* V; q | - tidy.clean_output = Off X! v1 W$ B5 P; C/ T
- 6 Z7 @2 @' R/ o% m# @
- [soap]
4 h2 B2 _$ p f. e - ; Enables or disables WSDL caching feature.! u4 k6 Z( k9 {: `3 u! i
- ; http://php.net/soap.wsdl-cache-enabled; G) ^9 S6 i' @7 m+ {) t5 F
- soap.wsdl_cache_enabled=1
7 l4 E, O S8 B- x3 k
0 m2 [! R8 K$ Q- ; Sets the directory name where SOAP extension will put cache files.
3 [$ I+ w# e$ ^' x4 S4 k - ; http://php.net/soap.wsdl-cache-dir
( Q3 t: I! Y3 {7 m - soap.wsdl_cache_dir="/tmp": o( z$ w* ~2 C8 }4 O6 n5 T. |9 Q: h
- ' W0 y0 F/ e, q! e$ R' ]
- ; (time to live) Sets the number of second while cached file will be used" X( H4 d5 K+ ^2 J" Z# U
- ; instead of original one., Q& A5 _6 B X. Q
- ; http://php.net/soap.wsdl-cache-ttl2 n- K0 ~# w( t' n! V W5 ]
- soap.wsdl_cache_ttl=86400" p, o+ e0 E: `) i0 R* v$ D
3 f1 v, X! W; v: T5 s6 l6 Q; i- ; Sets the size of the cache limit. (Max. number of WSDL files to cache)
# Q3 j. y7 ~8 a( r# W/ @- d. t - soap.wsdl_cache_limit = 5
" v1 [7 Y* v4 `0 Y1 M$ o/ ~7 h" F - 4 T( G* f7 x. C7 m9 {! l# f9 j
- [sysvshm]
3 ^+ V, Y9 d3 o - ; A default size of the shared memory segment
! E, V: C* C% g5 a g5 _ - ;sysvshm.init_mem = 10000/ @5 A: c+ A0 w+ b
- : B( q$ i! E' c
- [ldap]
' [9 e* u4 g: v - ; Sets the maximum number of open links or -1 for unlimited.
8 H' u& k; C) p) d& r - ldap.max_links = -1
; a Y( l( S: S. V - & i @$ O) Q; O( s) q
- [mcrypt]
W- `- p5 D% M7 ? - ; For more information about mcrypt settings see http://php.net/mcrypt-module-open
3 @: K. q& x% n
2 N* D+ ~% d/ }- H- ; Directory where to load mcrypt algorithms
- @+ d! j, m6 |3 N4 N- Z- H* [6 ` - ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
: R# h7 d, ^$ |) G2 e - ;mcrypt.algorithms_dir=
9 g4 y. F. X1 h `8 p - ( M9 D4 t( x/ P7 J
- ; Directory where to load mcrypt modes
8 ~% i- A, a0 b - ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)( N; P* w3 F& p0 a( @6 L. w7 F. i
- ;mcrypt.modes_dir=
x0 X: W2 O6 L2 P" O. x4 M
5 d- q1 Q$ {, p# A9 D- [dba]
7 u2 Z, j4 `" @! i, } - ;dba.default_handler=
7 c4 J( U5 N u/ D" @$ U" }, @ - 2 E* y4 I( l0 C& a
- [opcache]
2 S+ s& v4 j% d8 m+ i - ; Determines if Zend OPCache is enabled6 Q! L& d) ^' P* E2 R; l+ `) v
- ;opcache.enable=0
7 V ~9 n( L, l5 w$ t, B - - d, h& e/ L% j; e+ M# o- ^
- ; Determines if Zend OPCache is enabled for the CLI version of PHP* @% p2 U8 O+ v7 M w' ?
- ;opcache.enable_cli=0
: T" {; O8 Q- {( u' b+ C/ B
4 y, S4 Q7 `; g- ; The OPcache shared memory storage size.
' q' k0 c$ S' }7 c* @ - ;opcache.memory_consumption=64
6 V6 l! j; ?! I. x3 {* j$ i
6 l+ n: c. R& o" T* D- ; The amount of memory for interned strings in Mbytes.
! R8 U1 J( t# @ }7 m# p& ^ - ;opcache.interned_strings_buffer=4( y, d$ ?' m. k. w- n1 J
1 K! d- p- V0 I7 l+ H4 v$ N- ; The maximum number of keys (scripts) in the OPcache hash table.4 e7 ?2 _4 C% C/ o4 t
- ; Only numbers between 200 and 100000 are allowed.7 M2 m0 H6 M* ^# }
- ;opcache.max_accelerated_files=2000
: l0 }# B, i8 I& k6 u
) g' H, Y- I0 X9 k$ ?( O; `) J' t- ; The maximum percentage of "wasted" memory until a restart is scheduled.1 k5 u" w7 W+ [, k
- ;opcache.max_wasted_percentage=5: B* ]# u) Y$ o' v+ `; o7 M1 h8 s( D
9 m5 J# @5 x+ A, Y8 m( \- ; When this directive is enabled, the OPcache appends the current working B3 j, X: M3 p0 U' L
- ; directory to the script key, thus eliminating possible collisions between
, y& E' b% Q' I+ s$ m - ; files with the same name (basename). Disabling the directive improves
2 _, x: A o/ Y - ; performance, but may break existing applications.# X* m2 {7 r6 ?+ J x9 W
- ;opcache.use_cwd=1
" [8 }, X' `$ w: ?: V d* _$ s9 |
6 D8 C2 V) H' h2 K) M! @( ^- ; When disabled, you must reset the OPcache manually or restart the
) X0 Q3 w, }0 ?8 p! F4 P9 e2 g9 _ - ; webserver for changes to the filesystem to take effect.- |/ x5 N! W' R6 N2 J4 n
- ;opcache.validate_timestamps=1
: }1 ^& Y' j! s, X7 x3 U- t% s - ) ?( {0 h# z4 P ~
- ; How often (in seconds) to check file timestamps for changes to the shared- Y$ H! q0 S; ?7 n- Q$ q
- ; memory storage allocation. ("1" means validate once per second, but only
! L7 p/ a' i# u+ g1 T7 { - ; once per request. "0" means always validate) t9 n7 I7 S( r- E
- ;opcache.revalidate_freq=2! b; Y. U- D. p
, r6 c' M. O7 L. k- j( ?- ; Enables or disables file search in include_path optimization
8 D! X. t; X+ n. e1 h3 y; W - ;opcache.revalidate_path=0
' o5 ]+ H5 N+ D0 A3 ?/ F2 n3 F* B0 q( z - : l/ x7 _$ E5 c$ D3 ^6 |8 T1 q+ O
- ; If disabled, all PHPDoc comments are dropped from the code to reduce the' x* d F' E8 o; V! ^& g3 L
- ; size of the optimized code.7 Q3 g& D u1 [. M
- ;opcache.save_comments=15 f: ?- I& t7 u8 k" H* H
: y8 s6 b1 C' l5 J$ \) w- ; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments"
: h7 v9 B2 _; Y4 S- a% r7 v0 s2 C - ; may be always stored (save_comments=1), but not loaded by applications
8 D7 Z+ L: A0 {5 S, o - ; that don't need them anyway.6 z- p0 G6 a. `. c4 ?5 g
- ;opcache.load_comments=1
" D, G* w( R9 N
! t7 |6 q% g: }7 X/ a, o- ; If enabled, a fast shutdown sequence is used for the accelerated code3 S- m9 R" R- X5 v. ~1 i
- ;opcache.fast_shutdown=0
& S A7 |" C6 ~$ X# J9 s% w4 ?
+ l* Q; h: d% U0 p8 F- ; Allow file existence override (file_exists, etc.) performance feature.
4 K' S$ H+ |) A* J6 ]. _$ s# g - ;opcache.enable_file_override=09 n# w7 H F/ K& l' i! d* k
2 y+ B0 V. V6 o( H8 O) z- ; A bitmask, where each bit enables or disables the appropriate OPcache3 [) n9 d% L2 j1 S1 w! f: ?7 M2 f. }
- ; passes- F' ]/ i* @, ]$ b
- ;opcache.optimization_level=0xffffffff: t5 t" p% Y+ m: d# f: ^
- 2 y' T t; j+ ?/ t
- ;opcache.inherited_hack=1
" u# \: w5 w( x% p* m - ;opcache.dups_fix=02 R8 q# {- U `0 C/ }2 k* f0 b2 }/ R
+ G0 A9 m8 P f9 H7 \- ; The location of the OPcache blacklist file (wildcards allowed).0 c( v$ s, W3 y. H/ e/ D( Z
- ; Each OPcache blacklist file is a text file that holds the names of files
9 ~( Z: a7 [/ C$ K8 o5 O. y- P - ; that should not be accelerated. The file format is to add each filename' q$ N( A( |" y" v: i) a
- ; to a new line. The filename may be a full path or just a file prefix: i+ \4 r6 @! }8 w- ]/ d4 n
- ; (i.e., /var/www/x blacklists all the files and directories in /var/www/ V& z1 b0 W7 Z2 J8 F
- ; that start with 'x'). Line starting with a ; are ignored (comments)." [& @( h2 A% U" o/ Y
- ;opcache.blacklist_filename=4 h6 h7 r; a$ b) ]0 ~% z
9 ^$ G9 X0 R2 ]5 _2 D+ B- ; Allows exclusion of large files from being cached. By default all files) B% i' o+ |( D8 S+ Q! i
- ; are cached. X: i G' W% a. ^
- ;opcache.max_file_size=0, f6 j" C Z0 y, L% @
9 x$ a$ S4 Q8 Y" A2 `! X. M1 M* }- ; Check the cache checksum each N requests.
3 L9 ~6 @6 N( b' R - ; The default value of "0" means that the checks are disabled. d$ @1 W$ n, ^7 ~1 n) U
- ;opcache.consistency_checks=0; V3 f/ T w7 V/ q1 M3 H9 H$ f
- ) z- ]7 l p+ R- x
- ; How long to wait (in seconds) for a scheduled restart to begin if the cache
1 k3 [% C1 Y# j6 B! I - ; is not being accessed.+ j# q; {9 L0 X; z$ s# ]* I
- ;opcache.force_restart_timeout=180
, M) I& k( m3 N4 i4 f5 e! q$ u! D/ U
1 v8 |; [, D3 f- P0 c1 u- ; OPcache error_log file name. Empty string assumes "stderr".% _! E& K2 j7 H& U6 h2 o1 _
- ;opcache.error_log=" M& f5 O7 {" t9 i: ^
- 7 X& R5 ?: ^; b
- ; All OPcache errors go to the Web server log.
+ B: }5 S$ L% L2 c- z - ; By default, only fatal errors (level 0) or errors (level 1) are logged.! c+ q, h2 b1 e# g
- ; You can also enable warnings (level 2), info messages (level 3) or
; |) I0 q0 m0 t' P - ; debug messages (level 4).
5 E1 M) s# R5 V. c: p5 _ - ;opcache.log_verbosity_level=1
4 r8 k2 g7 F2 F- d0 F/ i - & U1 t! X0 T' z7 n2 N! Z
- ; Preferred Shared Memory back-end. Leave empty and let the system decide." X, b4 u2 ]# d; @2 y; A! u
- ;opcache.preferred_memory_model=
4 |6 R+ O; {# `
. h$ i9 f& U) b/ z# o$ `7 |7 W& E- ; Protect the shared memory from unexpected writing during script execution.
! h2 G5 T" m6 Y! A+ z2 p- Z) | - ; Useful for internal debugging only.( l) ?) |& I4 c7 z4 L4 @# }
- ;opcache.protect_memory=0/ ?3 P1 X' Z1 e8 H
. a5 r9 r$ I- B2 F/ A- ; Validate cached file permissions.
6 _& g3 _2 `5 @ - ; opcache.validate_permission=0! x# k. a' V" I$ Z& ?6 z/ ^/ m% R
: u+ @$ d( {& f, F; M- ; Prevent name collisions in chroot'ed environment.0 e. T+ E! [/ h0 k8 F+ L: a- E
- ; opcache.validate_root=0. O* V+ @( C) Y5 l: e; f% ?0 g
- 5 T, Y: ~1 f6 `& K% D8 ^. w7 @
- [curl]
# {' G. T7 T4 ^- l. Y - ; A default value for the CURLOPT_CAINFO option. This is required to be an
+ u# ]& U2 T& K5 g' y2 ]4 m - ; absolute path.) A" H" X; P: k
- curl.cainfo = /etc/pki/tls/certs/ca-bundle.crt
0 D. d" ~# R6 d( J8 f. P6 E - 1 m9 ^* q8 @" o3 ?
- [openssl]6 [" I1 ]5 j- }! W
- ; The location of a Certificate Authority (CA) file on the local filesystem( S, u `' j( M, L) `" Y
- ; to use when verifying the identity of SSL/TLS peers. Most users should) D. G/ W" L* C. c& u# I) M8 u# o
- ; not specify a value for this directive as PHP will attempt to use the
$ M4 q4 \+ y j- q - ; OS-managed cert stores in its absence. If specified, this value may still
( u q4 g+ A; w; h: Z" y& ] - ; be overridden on a per-stream basis via the "cafile" SSL stream context1 [! D+ S+ I: ]7 p+ @+ [, r. ?
- ; option.
( z |6 ]5 r8 F/ |/ A6 \. G* I! H - openssl.cafile=/etc/pki/tls/certs/ca-bundle.crt; v) M0 i3 B$ R- W* R9 c
- , _, h6 x% ~0 _6 p) k
- ; If openssl.cafile is not specified or if the CA file is not found, the
) s: O, p! s4 G4 p3 H7 g - ; directory pointed to by openssl.capath is searched for a suitable
4 T7 n1 m8 V. G; j+ T$ Y3 ~$ n3 O - ; certificate. This value must be a correctly hashed certificate directory.0 I" q3 D* X S; `; x
- ; Most users should not specify a value for this directive as PHP will. R2 f) H6 m6 @8 k$ L
- ; attempt to use the OS-managed cert stores in its absence. If specified,
6 u7 I0 O" N. ^8 R. ` - ; this value may still be overridden on a per-stream basis via the "capath"! m! D* Q- Y5 \1 [) q& y; ~' J
- ; SSL stream context option.
7 i$ v4 u* T/ n# i B+ v - ;openssl.capath=
; D9 I) X" q* l - 7 V* T4 ]$ Z% ]9 S, C8 t2 i# @' ~ z
- ; Local Variables:% V) J& I1 F( c5 Q: m8 ?9 v: q
- ; tab-width: 4- ] F, |7 Y5 Z& e4 x
- ; End:
) b9 b+ B) k N i. Q/ _/ Z/ l, } - ; u, A r u! p" K6 A
- ;eaccelerator
- g; D6 K" v4 `9 q
3 H. X$ y) [# G: n6 _8 n- ;ionCube
& q1 ^6 j( A" q7 t - . x2 v( q9 b7 ?5 I7 Q
- ;opcache
5 w2 k; F# _) F) d$ Y) @! I
6 P5 R$ A) n6 ?+ D F0 K/ n( H- [Zend ZendGuard Loader]% z' y4 K/ w8 V5 D% f3 O8 ?
- zend_extension=/usr/local/zend/php56/ZendGuardLoader.so d5 T4 ?3 [1 o# {2 |7 L
- zend_loader.enable=1
0 H9 F' q& M: O5 \6 _$ [ - zend_loader.disable_licensing=0
1 x# H) A" T8 y2 f - zend_loader.obfuscation_level_support=3/ h" j# l- G0 n! n8 z0 `+ ~0 R* u4 G
- zend_loader.license_path=$ P* ~, H3 r; E3 |8 \3 Y: |6 b
' {0 F7 U6 W0 v5 i! W" z! Y2 O9 c- ;xcache% l/ T2 h2 r5 S0 k
2 f, @; g5 Z* [$ t8 y. ]9 d. N2 Z1 O
复制代码 |