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