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