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