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