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

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

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

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

×

这个问题不是很好处理,困惑了很多站长非常时间了' M7 s: z" \4 Z* e/ h
主要出现在windows主机的服务器上。) B3 V7 r0 q/ o& C+ F
php官方,http://bugs.php.net/. n/ L% _/ q$ B
也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决
. T" |% J5 Q' c/ s; @1 B# ^http://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+access&x=8&y=9

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

第一种可能:

去掉 php中 eaccelerator 的扩展3 c* E) z: S5 {$ q, _4 l
这样做能够解决您的问题,不过可能会加重系统负担
# C* v- A+ \# @; O9 e! l" A因为eaccelerator主要是为了节省系统资源的东西

具体做法是找到php.ini
; ~& _  F1 h1 w1 C- u3 Q4 V如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

去掉

zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
, X: e& _* r8 L& l  A8 t8 X( Beaccelerator.shm_size="16"
% o) d" ?+ ^; B$ C' l: Ceaccelerator.cache_dir="c:\temp"2 N9 ]2 E; Z5 U
eaccelerator.enable="1"
7 ~0 v- ~6 X% q$ oeaccelerator.optimizer="1"" U$ {& s% r, N, B( C6 w
eaccelerator.check_mtime="1"
1 t3 f6 }9 N. ~" weaccelerator.debug="0"
# Q$ f) s" J8 n5 u+ deaccelerator.filter=""/ p2 v( U# }! b! A1 Q- {
eaccelerator.shm_max="0"
# P. t  {, ?6 E) v$ H: N0 ieaccelerator.shm_ttl="0"
& W: I( p0 E  E. w+ D3 ]eaccelerator.shm_PRune_period="0"
9 B& F% \8 B$ \% ~eaccelerator.shm_only="0"
- N: R8 K6 N+ ]/ ]1 H# ?# @eaccelerator.compress="1"4 T! i) |+ M% G8 j6 A/ b4 e
eaccelerator.compress_level="9"

ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
) \9 i6 D+ F; h( l这个bug已经提交给他们了,希望0.9.5能够解决

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


0 V5 v3 d* J3 ^4 S3 F


: Q9 c; F5 A/ _* h# Z* a第二种可能

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


2 ^* A  m0 j9 D/ g* S' {


  Z, N3 D- I3 z0 W) r& M第三种可能
! Y' ^, b2 T0 j5 P$ ?/ n# Wc:/winnt/temp 或者 c:/windows/temp
" W. ^, g2 A, w- [( E" x也需要everyone的所有权限,类似U主机的0777

) k: z( m' i$ s0 c; n- {

2 Z2 Z/ T0 r. |, S' w, X# k' P
第四种可能
  b+ l5 Y4 p+ s! t0 J$ @$ M您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
* d. F6 i7 a; ~# w9 X比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般

' [# f4 p2 [# n3 c) H


3 W! j$ _/ k3 r0 G第五种可能4 Z5 @1 u, S+ j
ZendOptimizer和php的搭配不是很好$ C2 M4 b" _# a4 ~
换个版本试试看& W2 P( o" R1 J! H$ A$ _( b3 `; X
目前比较稳定的搭配是- m" v. C2 ^. T# w
php4.3.11+zo 2.5.10a7 X8 I- r( f6 X4 V: \3 L# ?
或者php4.4.1+zo 3.0 beta2


5 n) f& J( ^& o+ v4 h


3 v6 ]; {. n& b2 C/ W: R6 t* q第六种可能

这种多属于用win2003的用户
( C$ b6 m3 M# n1 N) E( @他们在应用池中设定了限制. L" j5 {4 j* y; ?5 r) l  ~
比如多长时间回收,最大使用内存多少等等+ }) t" s# t, ]8 u8 R9 j# I
这些设置势必造成这个经典的php错误
9 z# ?% ?4 ^8 M, a/ o$ y0 g木头经过数以百计的测试,敢担保问题会出现在这里。

% P- v8 i; w5 ~+ |
评论0

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

GMT+8, 2026-9-4 00:45 , Processed in 0.061693 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.