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