登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
这个问题不是很好处理,困惑了很多站长非常时间了. q" l& e" k3 Y, l M: H7 o# k& ]
主要出现在windows主机的服务器上。+ Y7 T- s7 h) ]# Y3 G; S: k; ]
在php官方,http://bugs.php.net/. q1 x2 y# }: d
也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决: d! S9 ~, f. d
http://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+access&x=8&y=9 目前我提供一下这几年我维护经验,我的一些民间解决办法 第一种可能: 去掉 php中 eaccelerator 的扩展- _# o8 C3 D5 |
这样做能够解决您的问题,不过可能会加重系统负担
( e1 P0 s2 O5 J) w2 M/ |0 K因为eaccelerator主要是为了节省系统资源的东西 具体做法是找到php.ini
. V' Q: y% ]7 I' }2 v* }如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini 去掉 zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"- ^3 B2 Q8 O) E3 \; W/ P
eaccelerator.shm_size="16"$ E/ R/ S7 W, r
eaccelerator.cache_dir="c:\temp"" X& Y4 E2 S, T* r
eaccelerator.enable="1"
! _( Q- x i \9 Z' {: m% j$ Leaccelerator.optimizer="1"
9 Q0 T# ]# v! |5 S; n0 h aeaccelerator.check_mtime="1") t' ^$ e, c& \- N3 E$ t0 A
eaccelerator.debug="0"
7 P- y* H& F deaccelerator.filter=""- n, G% E/ Q! X% A- I
eaccelerator.shm_max="0"
0 e( J: E# k) }& h% geaccelerator.shm_ttl="0"
8 V1 D/ p$ [/ D! e" geaccelerator.shm_PRune_period="0"' P( Y! V: G+ t" f6 q; A, w
eaccelerator.shm_only="0"6 y; A$ g2 n" j
eaccelerator.compress="1"2 {. `4 K4 k' u# _8 V
eaccelerator.compress_level="9" ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
7 B E8 S( }" { W& g& @这个bug已经提交给他们了,希望0.9.5能够解决 当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件
: {- R. a/ d' S3 X, N& x配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右 & ` a- f* g. [
. g; o3 m' [9 x4 E, b
第二种可能 session_save_path 需要设定一个实际的物理路径,并且该目录需要everyone的所有权限,类似U主机的0777
, K0 }* f5 d5 n) T+ i* u3 f& `1 `) q& S2 o; x0 u9 O: N3 j+ |3 s
第三种可能
& `) J! R% Q! nc:/winnt/temp 或者 c:/windows/temp
- X0 {0 `; y" x也需要everyone的所有权限,类似U主机的0777
6 F; @$ ? i- B p* B7 J* a( X9 z/ s0 h: w* |+ Q7 N
第四种可能
( W% |2 i p- G7 b& S7 m% R您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
; I g6 o: b& |比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般
2 A! p# L" V) Q8 p* ~& _ k! L0 D+ Y* v( o+ J; Y+ J
第五种可能
+ M' |& a {5 m8 @' X$ _& [ZendOptimizer和php的搭配不是很好 t& f) C$ m2 s' ^
换个版本试试看+ ?- S' {3 f' ?+ m6 S
目前比较稳定的搭配是
6 } q) u H5 Rphp4.3.11+zo 2.5.10a
3 G5 G& |' g* M$ |) p) X7 {或者php4.4.1+zo 3.0 beta2
7 O! v6 p7 V$ ]" S" ?8 c. j6 h& B/ D8 T+ Y0 `
第六种可能 这种多属于用win2003的用户# D1 q& {. ]% g: b
他们在应用池中设定了限制
1 ]) Q9 }; L* y5 N& ^( C, q( [ B比如多长时间回收,最大使用内存多少等等6 y& Q: @- J7 B1 x1 ?+ R, ]) o# g3 s7 }
这些设置势必造成这个经典的php错误
5 E, J* J2 r8 H5 ~木头经过数以百计的测试,敢担保问题会出现在这里。 - T& e# A( J$ T: B2 w* [. p$ A
|