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