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