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