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