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