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