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