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