发新话题
打印

安装及配置eaccelerator-0.9.5加速PHP-5.2.1[原创]

本主题由 admin 于 2008-4-22 22:20 加入精华

安装及配置eaccelerator-0.9.5加速PHP-5.2.1[原创]

[文章作者:张宴 本文版本:v1.1 最后修改:2007.03.02 转载请注明出处:http://blog.s135.com]
9 F. [+ M+ \* D. r; g( V( }1 m% E0 a4 W& M# K! E6 r
  操作系统:Linux
" s5 I2 ~% c' x! X% w* d) e  - f5 q: D2 L' T" C* `# i. a
  一、安装eaccelerator-0.9.5(同时支持ZendOptimizer-3.2.2)
* S) U. G* |3 D; R+ @  
# g( h. G. ]. A3 [  1、首先安装ZendOptimizer-3.2.2. ~# Y& d7 }1 Y6 Y' J: P7 g  e
  
0 ?6 {  T8 b1 u0 X5 {. m( v! R  # wget http://www.vista.ac.cn/linux/down/ZendOptimizer/ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz; s- l9 f4 i; u0 H- }
  # tar zxvf ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz! M( F1 p) P  s5 _3 w
  # cd ZendOptimizer-3.2.2-linux-glibc21-i386
! `% j9 @4 F1 H; S- J1 x  # ./install.sh
- ^3 w. O; g' h2 I  
/ F. R% S& X1 z  在Please specify the location for installing ZendOptimizer:提示后输入ZendOptimizer安装路径,例如/data/webserver/zend2 \: E% h4 {3 N' C
  在Confirm the location of your php.ini file:提示后输入php.ini文件所在目录,例如/data/webserver/php/etc
* x3 E; v+ B/ r- R/ b  在Specify the full path to the Apache control utility (apachectl):提示输入apachectl绝对路径,例如/data/webserver/apache/bin/apachectl& ^# z% N- i; Y) L5 O
  
3 N& \8 h+ s5 E& f! @/ G, x) d  
! n+ S3 l. U" k) t  f4 ?5 \  2、再安装eaccelerator-0.9.5加速软件
$ w6 p4 m5 g( S6 a$ J- @. s  $ [0 k  S' E" O* R
  # wget http://www.vista.ac.cn/linux/down/eaccelerator/eaccelerator-0.9.5.tar.bz2! I0 N. \* \* X4 F
  # tar jxvf eaccelerator-0.9.5.tar.bz2" T7 V, E& {' ^. @: X: a  b  A
  # cd eaccelerator-0.9.5
# c* A* _* x" c( s, j  y- ^  
- h! w$ Y' h3 I! t  指定php所在路径:
; n  z8 _. q" R4 i: L; p. X  # export PHP_PREFIX="/data/webserver/php"
" [% b$ U5 h* p2 z( v  # $PHP_PREFIX/bin/phpize
+ D& g+ X* {4 }$ p# Q/ b  # ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config! ]' s/ N. J' @2 ~- O
  # make4 B& l0 T* J0 A+ f4 ~
  # make install
- z7 T9 X; n" }6 Y9 G; e0 O  
# Q; i9 u9 X" J5 ~- X7 _0 {- ]4 K  这时会将eaccelerator安装到php目录中,屏幕会显示eaccelerator.so所在路径,例如:
# B  ?* Q. |' F( G  Installing shared extensions: /data/webserver/php/lib/php/extensions/no-debug-zts-20060613/
) ?' U2 m- g, A4 ^# ?  记住这个路径。
0 e9 T* E. o. A! s5 J! Q  
/ ]) b9 O# j1 Z' i1 C5 j2 T  eaccelerator即可以安装为PHP扩展,也可以安装为zend扩展,以下安装为PHP扩展。1 r) q/ M% K' j$ _
  
; N& j: D; }; C8 t( C: t, h  如果存在/etc/php.d目录,需要拷贝eaccelerator.ini到该目录下,然后修改缺省值。如果不存在,修改php.ini,在[zend]之前加入以下内容(注:必须放在[zend]之前):
# |' p: |' `; Y* a5 X  2 K/ u; Z% N+ I" l9 L
  [eaccelerator]9 ^( {0 M/ v9 V" I2 ?
  extension="/data/webserver/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
" M9 Y# S/ l  [7 y% v0 s  eaccelerator.shm_size="32"1 q1 c3 A) H! y5 J  ~
  eaccelerator.cache_dir="/data/cache/eaccelerator"
( O$ [, X  t5 ~  eaccelerator.enable="1"
2 S/ n5 T9 D7 ]* ^  F  eaccelerator.optimizer="1"
7 g. P$ W5 o' t  eaccelerator.check_mtime="1"
# y3 {& p7 X; K7 g- z, n( Y  eaccelerator.debug="0"
2 E$ T/ h7 p* g# X, N# ?  eaccelerator.filter=""
4 T  |* g7 e# A# G  eaccelerator.shm_max="0"- N$ ~6 ^4 O7 e' m
  eaccelerator.shm_ttl="0"
. M0 \5 g7 v8 `3 K1 Q  eaccelerator.shm_prune_period="0") r8 R2 }5 ?, b7 l1 l$ h
  eaccelerator.shm_only="0"+ E5 T) z. F' y$ p8 ^
  eaccelerator.compress="1"4 {# a. L1 l* x5 J. b9 S, \
  eaccelerator.compress_level="9"
6 S5 _, M7 A" g6 O( }  % l" P' a* u$ n& s: C
  建立缓存目录:7 F* E/ w* P) K5 S8 t2 z3 W
  # mkdir -p /data/cache/eaccelerator
4 i3 ]" c. G; f3 E) f  # chmod 0777 /data/cache/eaccelerator
4 o' d8 b8 U1 r% F/ l$ U: k$ {9 C  
' L  s. d( i' s5 L6 ], l) R  重启Apache:
9 z3 i4 E" J( _) w- g  # service httpd restart3 N+ k  |  t( [0 e/ f  e
  
* e8 r, r' m2 p5 H6 C  
3 a7 A  r2 w0 z- A  3、检查ZendOptimizer和eaccelerator是否安装成功
9 L0 n* l2 [! Z' p8 H: @& z( ?  
& v& G. h# Q) }$ l  创建一个phpinfo.php文件,内容如下:
2 |' p6 L: G+ _. C, j  <?php
  o; J& S) W9 G+ q4 a      phpinfo();7 E. x3 o3 K# l0 v0 \
  ?>
' I- B. ]5 H8 w: T3 ?  6 c% P9 Y& q: Y% n+ b0 q
  将该文件放置到网站目录,在浏览器中访问,如果出现以下内容则安装成功:
# _) L7 W' L* T9 q9 i. p. ~  This program makes use of the Zend Scripting Language Engine:1 @% c" }1 P- D
  Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies) x& i0 ]# |6 c# F- _$ L
      with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
- F' ]4 m: ~/ u; k      with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies
! A3 d* V2 a$ X! X, l% T/ L0 f      with Zend Optimizer v3.2.2, Copyright (c) 1998-2006, by Zend Technologies
& T. O6 J' C- c2 d. i. \: A* W) p' R  " s0 p1 f4 Z% m7 j
  
. A/ i9 Z+ c- u: L6 o2 s  2 h/ i% O* r5 D" N
  二、eaccelerator配置信息详解(根据官方英文说明翻译)
/ Q5 V% M6 _, ^. f' R; i2 s  
3 _; [  {/ x* `% l% l+ \  extension="/data/webserver/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
: ^7 z2 C. z$ t* Y) B) z  
% o" [$ f# G% O7 f0 i2 n  解释:PHP扩展eaccelerator.so的路径。
# Q$ a& p6 A4 [' k  - _: f9 S; M8 `
  --------------------* j) u+ ?6 U+ R/ k- V# Q* L. }
  
( W- u' u3 v; _2 v# I+ B) v  eaccelerator.shm_size="32"
0 k* x- L+ H$ L$ N  
5 y. ^7 \; z2 S+ B* t: A  解释:eaccelerator可使用的共享内存大小(单位为MB)。) X2 \+ X! H2 _5 @3 \1 C3 [
  
! x' y% Q- G7 Y7 |( T* O$ ~  在Linux下,单个进程的最大内存使用量受/proc/sys/kernel/shmmax中设置的数字限制(单位为字节),例如CentOS 4.4的shmmax默认值为33554432字节(33554432bytes/1024/1024=32MB)。( M9 r" K* C  ?
  2 Z8 V- u7 z  i: m% x& `
  临时更改该值:
, ^4 |. Z4 E+ A* p; ~  # echo 字节数 > /proc/sys/kernel/shmmax8 @, P1 g; N  T' E7 Q$ m
  9 G2 t+ M2 l- m8 y1 E) h
  按照以上方法更改,在每次重启系统时,该值会被自动还原。如果想永久更改,可以修改/etc/sysctl.conf文件,设置:
( F/ `4 B* a/ _( D7 k4 w  kernel.shmmax = 字节数- D/ ^. E. W- A" _3 `; Q
  3 G1 N- I6 ?& p
  --------------------
$ B# J/ H8 V1 B! p( k" [) q; l3 Q  
( w4 t/ S! v& C1 q  F& r  eaccelerator.cache_dir="/data/cache/eaccelerator"
0 V, ^1 |, y6 V1 A2 L0 }/ b  ' ^3 e- ^2 y+ {% J
  解释:缓存路径,可以使用命令mkdir -p /data/cache/eaccelerator创建该目录,然后使用命令chmod 0777 /data/cache/eaccelerator设置该目录权限为0777
; r0 D# P6 f% m0 V  [- c! A  ' ~( `! x4 U3 H% A! C8 K6 ]
  --------------------' V% Q8 @7 {# z6 `$ D* w* {
  
) Q+ P; z$ d: l* Y( x/ Z  eaccelerator.enable="1"$ I) }9 V- }+ @9 X3 T
  
/ ~9 M* {" }7 T6 H1 R  解释:打开或者关闭eaccelerator。"1"指打开,"0"指关闭。默认值为"1"。
; N& f% [( e. j7 P. z9 w% O+ @+ @  0 |, E! B: ~$ ~$ I6 ]
  --------------------
' |4 _& t% {. A  , `2 Y; ?$ Y+ x* U. A! B
  eaccelerator.optimizer="1"
4 j  p; ]4 H, c3 ?- t8 G  7 h, e+ K7 R2 g  _. q: E
  解释:打开或者关闭代码优化,开启可以加快代码的执行速度。"1"指打开,"0"指关闭。默认值为"1"。
2 A& B+ z0 x1 c, a5 |/ F8 o4 k# Z. e  7 y  f2 \  h+ b, z1 d0 \. ?
  --------------------
8 q* `: y% ?6 |- s  0 K- i9 ]& f) n2 S+ |1 ^# W" [
  eaccelerator.check_mtime="1"# O4 l8 ^5 \+ `) \& R; U; g6 P/ ?0 E
  
% A2 u2 i2 |% \  解释:当打开此项时,eaccelerator会在每次请求时检查php文件的修改时间,看其是否被修改过,这会耗费一点时间,如果php文件被修改过,eaccelerator会重新编译缓存该php文件。当关闭此项时,如果php文件被修改,则需要手工删除eaccelerator缓存,才能显示被修改的php文件。"1"指打开,"0"指关闭。默认值为"1"。* @9 O1 \6 `' M4 l
  5 Q+ c9 F; N9 u) {# E  s9 ?
  --------------------+ m  y( u0 @  H
  * r  d& ]7 @2 ]6 y/ e& {1 |! P3 p: A8 A3 _
  eaccelerator.debug="0"( q; B; t9 \/ y8 R/ g7 f/ a
  
& s* \8 \. }# x/ Y% k7 C8 _  解释:打开或者关闭调试记录。当打开时,eaccelerator会将对一个缓存文件的每次请求都写进log。打开此项只对调试eaccelerator是否有BUG时有益处。"1"指打开,"0"指关闭。默认值为"0"。
* w9 @2 @0 H6 j% v  
( G1 u) E$ {5 ^! w/ H% q" s% B  --------------------1 i1 M. \8 r( Z) ?) m1 w% \" U3 `7 T+ O
  ) y. R6 C3 z& Q# l$ d) I% Y
  eaccelerator.filter=""
5 _2 C1 s- Q7 n7 y0 ?  5 N5 h' Z$ c# U$ \' j/ L
  解释:决定哪些PHP文件应该被缓存。可以指定一个范围(比如"*.php *.phtml"),这样被指定的文件就会被缓存。如果该范围以!开头,被指定的文件就不会被缓存。默认值为"",表示缓存所有的PHP文件。
% H5 d* H+ d- k  o  
  s" e9 l0 a- i, x+ R  --------------------
2 e: R7 e$ q% }6 E$ u$ x) i  8 |5 u; ~/ S6 k# F- x
  eaccelerator.shm_max="0"8 m/ L% h& a/ {% o/ C9 a  r
  / O+ O. Y6 N) f0 C1 |. W6 j: v
  解释:一个用户使用例如eaccelerator_put之类的函数能够往共享内存中加载的最大数据。默认值为"0",表示不限制。(单位为字节)
, p9 c: B0 F* _6 i  
8 o' {' E% ]% c9 \& C( b8 k  --------------------
9 K! ?# x) y. y: D6 T  
/ |+ v0 P  J7 Y4 t* p  eaccelerator.shm_ttl="0"! I7 R& A1 ^" V/ G4 k
  ' i* H9 n4 }& h
  解释:当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删除至少在shm_ttl秒之前没有被访问过的文件。默认值为"0",表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)) W) P+ m# F: d
  
' [- H% L. d/ }  --------------------
: o: c) w8 [  T  
: `7 d: p0 i5 v0 P9 {  eaccelerator.shm_prune_period="0"8 O2 U  @0 o( ]+ |) J
  
/ d! P# V0 `  g+ w1 r  解释:当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删所有旧脚本,前提是这个尝试在超过shm_prune_period秒之前被执行过。默认值为"0",表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)# [! p5 _% F4 D) \  p0 K
  
- L* ?" m9 {4 K2 S6 h  --------------------
. G: _$ _/ \3 V$ d  $ x0 Z& q& t" a3 J1 ]
  eaccelerator.shm_only="0"
- q0 `. b5 \* B- u  6 M/ \: u/ T6 w0 [9 X: R4 h
  解释:打开或者关闭在磁盘上缓存编译过的脚本。这个参数对会话数据和内容缓存没有效果。默认值为"0",表示使用磁盘和共享内存来缓存。
* I- h" U9 p9 R% I9 O! G0 I9 p  
% B9 }; _7 d6 W( f" s6 x2 D4 f  --------------------
. Q& X1 u/ h& i. Y  ! \  h. q: G( p3 I7 ~
  eaccelerator.compress="1"
. Q$ z1 \) U8 F8 U* {  * P$ K6 K7 d2 p. v
  解释:打开或者关闭缓存内容压缩。"1"指打开,"0"指关闭。默认值为"1"。5 X: i  R; g7 O2 U
  9 Z3 ?0 C1 t% m/ a/ ^
  --------------------* W) H" B. v) i) `. e$ e
  . }) K7 q( X% J. w: s+ v
  eaccelerator.compress_level="9"
7 Z+ T& H/ v  ?' `* {; U# `  
6 B. @( w  g  M- d  解释:内存压缩的级别。默认值为"9",表示最大压缩。  _9 R" F# c5 S! w( j; ]* i
  9 g3 |9 F0 U$ B4 }3 `
  6 Z: G' n' M  d& E; B; K" Q
  参考资料:- e6 y1 G* z6 x' f' S8 p
  1、Installing from source (http://www.eaccelerator.net/wiki/InstallFromSource)% A) q% Y, E# w2 y, _7 Y, C0 n! W: g
  2、eAccelerator settings (http://www.eaccelerator.net/wiki/Settings)
做一个快乐的!,建一个漂亮的"

TOP

发新话题