PHP has encountered an Access Violation at XX的解决办法

1、更新到5.2后php版本
2、是否zend所需的dll文件所在目录给的权限不够,必须有读取和运行的权限
3、如果使用的是windows系统,是否设置过应用池,比如池中限制了什么
4、
高版本的PHP和Mysql存在兼容性的问题。c:/windows/system32下的libmysql.dll 使用php下的,不要使用mysql下的,因为两个程序下都有
5、php.ini有两个地方没有设置
1)
将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。
upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径
比如:upload_tmp_dir = d:\tmp
(d:\tmp目录必须有读写权限)
2)
php.ini中关于session.save_path一项没有设置好,解决的方法是将
session.save_path和session.cookie_path 定义一个绝对路径
比如:
session_save_path = d:\temp
session.cookie_path = d:\temp
(d:\tmp目录必须有读写权限)

 

出现的原因:pw9内存占用高与服务器内存资源少,IIS应用池资源不能即时回收导致
解决方法:
1、服务器设置:
1)设置IIS应用池回收时间小于60分钟(默认是1740分钟,很多服务器都没改过)
2)应用池可支配大小不低于500M
3)CPU使用限制不低于50%(部分服务器为了提供更多虚拟机给站长使用,限制了CPU使用率)
4)可以安装php的eAccelerator模块,网站可提速5-10倍,还可减少pw9的文件加载资源消耗
2、网站优化(IIS 虚拟机用户):
1)后台关闭debug模式
2)把模块属性里的“数据更新周期”设为480分钟,并设置“数据更新区间”设为“开始于1点0分 结束于10点0分”
意思就是数据自动更新时间在访问空闲时段,避免高峰数据更新占用大量内存和CPU资源。如果还出现,直接把周期设为0,手动更新。模块包括默认的喜欢页和话题页模块以及拖曳、导入的模块
3)后台全局里设置防刷新时间间隔3秒
4)减少二级域名和伪静态的使用,这个很占用资源

额外的话:虚拟主机用户使用前请先确认php有没有安装zlib模块(用于应用安装)和socket模块(curl模块)用于应用中心以及windid通信

 

标签

发表评论