快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

PHP has encountered an Access Violation 错误的解决方法

一般是因为eaccelerator的问题,windows下容易出现这个问题。

搭建wordpress的时候发觉居然会报这种错误,网上的解决方案都是千篇一律的复制粘贴,都是关于eaccelerator的设置问题,我很奇怪我并没有安装这个扩展啊?不过倒是安装过APC扩展,两种扩展都是优化服务器做底层代码支持,实现缓存共享。将APC关闭就不报错了。
一般是因为eaccelerator的问题


解决方法如下:
php for windows的bug
参考:

第一种可能:

去掉 php中 eaccelerator 的扩展
这样做能够解决您的问题,不过可能会加重系统负担
因为eaccelerator主要是为了节省系统资源的东西

具体做法是找到php.ini
如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

去掉

 

  1.  
  2. zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"   
  3. eaccelerator.shm_size="16"   
  4. eaccelerator.cache_dir="c:\temp"   
  5. eaccelerator.enable="1"   
  6. eaccelerator.optimizer="1"   
  7. eaccelerator.check_mtime="1"   
  8. eaccelerator.debug="0"   
  9. eaccelerator.filter=""   
  10. eaccelerator.shm_max="0"   
  11. eaccelerator.shm_ttl="0"   
  12. eaccelerator.shm_prune_period="0"   
  13. eaccelerator.shm_only="0"   
  14. eaccelerator.compress="1"   
  15. eaccelerator.compress_level="9"  

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

 

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


第二种可能

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


第三种可能

c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有权限,类似U主机的0777引用:


第四种可能
 

您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般引用:


第五种可能

ZendOptimizer和php的搭配不是很好
换个版本试试看
目前比较稳定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2引用:


第六种可能

这种多属于用win2003的用户
他们在应用池中设定了限制
比如多长时间回收,最大使用内存多少等等
这些设置势必造成这个经典的php错误
木头经过数以百计的测试,敢担保问题会出现在这里。引用:


第七种解决办法

2003用户,可以通过修改正在运行的应用池的, “性能”-“WEB园”“最大工作进程数”来解决.
曾经有个用户,直到加为10,才彻底解决了这个问题。


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论