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