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