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