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