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