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