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