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