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