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