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