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