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