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