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