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