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