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