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