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