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