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