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