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