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