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