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