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