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