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