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