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