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