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