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