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