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