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

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

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

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

×

这个问题不是很好处理,困惑了很多站长非常时间了
; D; R9 y  n. n% C- A' O主要出现在windows主机的服务器上。
& @6 K% o2 h% xphp官方,http://bugs.php.net/
1 Q& [* p! O% r& m2 f" q. o也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决
5 |! x0 ~; e5 _# shttp://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+access&x=8&y=9

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

第一种可能:

去掉 php中 eaccelerator 的扩展! G* }1 V! G8 ~3 r' H# W6 x. E4 D
这样做能够解决您的问题,不过可能会加重系统负担  ^* w9 ?  r! `" V5 D
因为eaccelerator主要是为了节省系统资源的东西

具体做法是找到php.ini
2 s9 [) F% P" i" h  U, J& l4 A+ W如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

去掉

zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
' g# x" U- d* \3 m; {; Meaccelerator.shm_size="16"
  C  a" U9 I0 i* A1 Y8 L2 ]eaccelerator.cache_dir="c:\temp"
) ?7 S8 [/ f) `$ ^eaccelerator.enable="1"
# j+ L$ A& S+ ~4 G$ B" e4 Xeaccelerator.optimizer="1". b  G2 B4 P* w
eaccelerator.check_mtime="1"& t: L6 Z' {+ u! d
eaccelerator.debug="0"
' K7 c0 Q/ m+ `* O( _) T  geaccelerator.filter=""
0 a& {6 i8 s& Heaccelerator.shm_max="0"/ L8 t( k' w% x" Z% F
eaccelerator.shm_ttl="0"
: D: w; |; |8 z' k- Z4 _: Ueaccelerator.shm_PRune_period="0"& A! q, i2 d$ q6 m; n7 w; P
eaccelerator.shm_only="0"
% N1 c* z! O9 _/ ^eaccelerator.compress="1"
. I" {* i5 y3 S" o( O8 Eeaccelerator.compress_level="9"

ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
2 c$ R. O2 _* K4 a这个bug已经提交给他们了,希望0.9.5能够解决

当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件* i1 t& F6 T3 a! D. G, Q
配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右

  H8 f/ J. K  s; t; j4 \4 j) J" X


2 \+ U( o; J. ]% [  y( ~8 {第二种可能

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

& U/ }! I% \! K0 o, l( r  c. x

% G% `+ @4 \# t$ n; X& ?% l3 w
第三种可能
8 ^' j* m' }0 i5 ?  Sc:/winnt/temp 或者 c:/windows/temp
& W/ E9 s: W) h! Y9 D  U也需要everyone的所有权限,类似U主机的0777

8 n7 l2 V$ a8 }, N

$ d6 G2 M+ ~4 A4 a
第四种可能
  g, @3 B* T2 v( e您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条+ a% Y- ?6 d  V3 S! Y0 X. R# n
比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般


. G0 H8 n. S( ]. B

7 f' l$ r4 U- N
第五种可能
/ G  t/ B. E0 N( c( L3 ?+ MZendOptimizer和php的搭配不是很好
5 e7 i& b9 z' d  n7 D换个版本试试看
% @: E: Y6 R7 v目前比较稳定的搭配是
/ P! G3 I$ Z: w9 p: X" z" \php4.3.11+zo 2.5.10a+ E% q% i/ m( _9 `/ j9 e" B
或者php4.4.1+zo 3.0 beta2


3 ~/ N7 `% X. O- `


- n& s3 L& E5 d- _9 F$ m/ M+ ~第六种可能

这种多属于用win2003的用户
  a5 ]' A5 |0 L1 j, G* I+ |, @. f他们在应用池中设定了限制& A3 @8 Z) c" d% C& ]5 Z1 y
比如多长时间回收,最大使用内存多少等等% z# a' i+ u8 x1 Q! s% ~
这些设置势必造成这个经典的php错误$ j) ?& f0 h8 M  H8 Z
木头经过数以百计的测试,敢担保问题会出现在这里。


4 y) e# V4 d$ |+ b
评论0

手机版|小黑屋|源码模版|全球支付|VISA信用卡|MASTER信用卡|科恒数字网-持续研发、集成、交付、运营方案资源库

GMT+8, 2025-11-7 10:03 , Processed in 0.292623 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.