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