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