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