找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 285|回复: 0

[服务器] PHP has encountered an Access Violation解决方法总结

[复制链接]
admin 发表于 2021-5-27 23:06:57 | 显示全部楼层 |阅读模式

登录后,购买下载资源更方便!

您需要 登录 才可以下载或查看,没有账号?立即注册

×

这个问题不是很好处理,困惑了很多站长非常时间了* E& h" A3 V: X9 N& Q2 Y
主要出现在windows主机的服务器上。
. f( B! }+ X  d: gphp官方,http://bugs.php.net/
: a; S- w" ]; L也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决
/ f  t* k" n; shttp://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+access&x=8&y=9

目前我提供一下这几年我维护经验,我的一些民间解决办法

第一种可能:

去掉 php中 eaccelerator 的扩展
6 \) K) _6 w: j* N1 r& b( K这样做能够解决您的问题,不过可能会加重系统负担
+ F8 ?3 z; I$ J3 d& w* U2 W+ \& N因为eaccelerator主要是为了节省系统资源的东西

具体做法是找到php.ini
3 `" e) Z9 A  y. z如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

去掉

zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
" k% ~9 R& Q3 F% g. C+ z, veaccelerator.shm_size="16"
% N) l2 J$ `, A8 N: T8 \( Qeaccelerator.cache_dir="c:\temp"
! K5 g2 S8 x* P3 ], K: {eaccelerator.enable="1"
$ \0 U3 G6 T0 J' Y& B2 ~8 leaccelerator.optimizer="1"( r9 d) o! Y9 O# d
eaccelerator.check_mtime="1"8 r7 S4 X; u6 J+ B) u
eaccelerator.debug="0"
& `  p) j# ^" H8 D( Leaccelerator.filter=""0 u9 p- C5 ]) @, g" X  {2 n2 b
eaccelerator.shm_max="0"
/ E4 o3 r) B0 O# J/ e3 V: ?8 |7 }eaccelerator.shm_ttl="0"+ F' o) B( r8 D& h% v, ~, |
eaccelerator.shm_PRune_period="0"; l8 C- R, Q  I. ]4 ]
eaccelerator.shm_only="0") d9 E+ C1 Z- ?- \4 N) C# ?
eaccelerator.compress="1"
& n6 `  v. C7 _% g* ^5 D$ i. K$ Ceaccelerator.compress_level="9"

ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
0 e' W: f" Y* K. c这个bug已经提交给他们了,希望0.9.5能够解决

当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件
; _% U4 I" I8 ]配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右

6 t: T: @3 q" m* l' t, P

- C8 |! ^4 R. k$ N5 }; U" u5 E' ]2 w: o
第二种可能

session_save_path 需要设定一个实际的物理路径,并且该目录需要everyone的所有权限,类似U主机的0777

5 g: b! m. F0 Y$ x

# w2 u' F* N, [: e: M# z  M
第三种可能
( ^& `/ _" w) x3 C1 J9 pc:/winnt/temp 或者 c:/windows/temp
5 f  x5 ~4 a3 c) {3 p6 {也需要everyone的所有权限,类似U主机的0777


' P1 `  Y/ Z$ i0 [' Q

1 c% d1 Y6 Y: P. U) `1 Z; P- e2 z
第四种可能3 H+ \& H8 @; d4 T% T% ^0 g! L/ _
您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
1 W( M3 u+ Y. F% @比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般

" E& |- W6 K6 O7 E8 N$ v


' z9 }. N0 p$ S第五种可能4 S) r' `2 @8 @- ?: J1 F6 y( w
ZendOptimizer和php的搭配不是很好
2 C# f, P& {9 `& o换个版本试试看6 A4 p9 b+ |& \, ^! x
目前比较稳定的搭配是1 i. z& K* q9 {: O6 |, T$ R
php4.3.11+zo 2.5.10a
1 f5 H! ^' t" \6 P* H/ n% L8 x或者php4.4.1+zo 3.0 beta2


8 T8 h4 E7 ^5 O/ m; a


8 S3 S1 T# @6 a  ?7 g! q第六种可能

这种多属于用win2003的用户& h0 ]5 c  K% E$ c/ f
他们在应用池中设定了限制
; m+ ?; d" ~2 @0 e& b$ D比如多长时间回收,最大使用内存多少等等  r* h8 ~' }$ N" n2 N+ v# y/ I3 |
这些设置势必造成这个经典的php错误
! G  V- K5 B" c! [1 e+ Q木头经过数以百计的测试,敢担保问题会出现在这里。


1 T+ z) l! a3 d

QQ|手机版|源码模版|全球支付|VISA信用卡|MASTER信用卡|科恒数字网

GMT+8, 2024-4-25 08:20 , Processed in 0.052841 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表