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