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