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