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