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