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