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