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