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