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