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