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