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