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