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