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