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