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