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