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