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