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