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