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