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