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