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