城北·IT俱乐部日常经验分享·城北博客

浏览: 393    评论: 1

网站搬家后打开网站提示PHP has encountered an Access Violation at…错误,打不开网页了,搬家的环境什么都没有变过啊,为什么还会出现这样的问题呢?其实大多情况都是php的版本问题,PHP版本太低了,只要把版本升上去就可以了,比如你现在是PHP5.2 ,那么现在在安装一个PHP5.3换成5.3可以解决这个问题了.



同到网站提供PHP has encountered an Access Violation at的问题

一般只要把PHP升到5.3就可以解决了,但也有一些比较特殊的问题,可能出题这个问题,首先在你排除了不是版本太低的问题后,还是出现问题的话,那么就看一下下面我们的介绍吧.



排错方法:

最好先查看系统日志文件,我们从日志中就可以发现很多问题。

我们就是因为数据库表出错,修复一下就可以了,重启下iis或重启下服务器试试。

有客户反映在VPS中出现该错误:PHP has encountered an Access Violation at *

根据错误提示,可以用以下办法解决:

1、重启IIS,重启VPS主机即可。

2、关闭eaccelerator扩展
找到php.ini
如果是我帮您配置的,一般在c:/windows/php.ini

去掉

zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

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

4、您的内存严重不足

5、ZendOptimizer和php的搭配不是很好,换个版本试试看

6、这种多属于用win2003的用户,他们在应用池中设定了限制,比如多长时间回收,最大使用内存多少等等

技术部门推荐,重启IIS即可,因为这个错误出现的几率非常低。

以下是补充一:

打开网页发下如下错误:PHP has encountered an Access Violation at
  当网站出现这个错误时候,首先要检查一下你的网站具体的错误原因。可能返回的同一个错误但是出现的原因可能是不一样的。比如感冒其实分很多种的哈!只有找到错误的原因才能更好更快的解决错误。
  登陆你服务器打开系统日志。即在命令行中输入eventvwr在弹出的对话框中点击系统我在里面发现这个网站有一下错误提示:


看到这个错误错误的原因可以断定是:用户在更改过匿名用户访问后出现的。
  处理办法:
  1、重新建一个网站把主目录的路径指向原文件的目录。
  1、右键网站--属性--目录安全性--身份验证和访问控制--编辑在用户和密码中输入正确的用户名密码。
  刷新网址一切正常。这个错误是根据本机的实际情况处理的。你也要根据自己本机的具体错误原因解决存在的问题。

你再看看以下几点. 
1,是否zend所需的dll文件所在目录给的权限不够,必须有读取和运行的权限  
2,是否使用的2003,设置过应用池,比如池中限制了什么什么,调整一下再试试看,是否好了,呵呵  
3,php.ini有两个地方没有设置,而且一些程序必须用到的  

A  
将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。 
upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,例如: 
upload_tmp_dir = d:\upload  当然,此时你的d:upload目录必须有读写权限。   
这里我设置为   
upload_tmp_dir = c:\temp  (因为前面建立了这个文件夹,我图省事,呵呵)  

B  
出现这样的错误语句一般是因为你的php.ini中关于session.save_path一项没有设置好,解决的方法是将 
session.save_path和session.cookie_path 设置置为   
   session_save_path = c:\temp   
   session.cookie_path = c:\temp   
   然后在c:\目录下建立一个temp目录,即可(前面我们的eaccelerarot正好用到,建立过这么一个文件 
夹) 
或者因为安装了一些组件导致。都可以参考下。
最近我的windows2003服务器频繁出现“PHP has encountered an Access Violation at ××××××”这样的错误,尝试搜索了下,遇到这样问题的人还真不少。我的原因可以锁定在eaccelerator上面,因为之前php运行效率不大满意,所以装了eaccelerator加速,效果还是不错的,但随着数据库不断加大,查询和更新数据库操作太频繁,出现了“PHP has encountered an Access Violation at ××××××”这个错误。网上的解决办法无非就是去掉eaccelerator加速,这肯定不行,因为我要用,那就按他们说的配置一下吧,什么临时文件啊、session路径啊,都改了,还是不行,于是就想是不是mysql版本的问题呢?看了下,发现dll的大小和修改日期还真不一致,于是把mysql下的dll覆盖了从php里拷贝到系统目录的dll,重启iis,貌似好了,但是重启服务器后又出现了,看来问题不在这,难道是iis应用程序池的问题? 

  尝试去除这个站点的所有限制,但是重启服务器后发现又不行,还是这个错误。观察了下,只要重启iis就能临时解决这个问题,但是这不治本啊。仔细想了下,既然我的环境没有问题,是在装了eaccelerator后出现问题,那就从eaccelerator下手。仔细检查每个配置,发现我配置的一点问题都没有,无论eaccelerator的版本、php的版本,还是mysql的版本,都没问题,权限也都够,php.ini配置也正确,但重启iis就好使一阵子,于是把问题定位到应用程序池。因为我的iis之前配置一点问题都没有。最近看eaccelerator资料是共享内存和硬盘,难道是iis应用程序池和其他站点共享导致这个问题?于是重新建立应用程序池,把这个应用程序池只独立分配给出问题的站点,适当减少对资源的限制,重启iis,好使了,重启服务器,也好使了,做了个简单的压力测试,也好使了。 

  到此问题解决,留个日志纪念下,我一个礼拜才解决的这个鸟问题。


全文详见:http://it-club.cn/post/31.html

TOP


评论列表

访客

#1楼
评论于2016-01-15 13:36:17
对版本问题,升级到5.3就可以了

发表评论
来宾的头像

TOP

网站分类

TOP

最新留言

  • 这波操作牛,广发的信用卡就是不怕你刷
  • 这路子之前就有了,只是公开的人不多,很多人不知道,谢谢城北公布。
  • 下卡到是容易,就是速度慢两个多周了还没发卡
  • 这里补充一提醒一下,如果没有给临时的也可以发短信试试,不是一定要给了临时的就成功。只是成功率更高。
  • W2 老用户投2000以上90天可激活一台,W2售价1399元, 分6期(一期30天算)返还 ,也就是180天了
  • 最近很多朋友都反应农行的3+1提额已死,3+多少都没有用了,成功的少之又少,当然包括城北也失败了。手银上有推荐,但是不管是手银上还是电话申请都失败。现在大的方向都是失败的,卡友们能做的就是只能正常用卡了,等一段时间看情况在针对操作。
  • 本文是分享来的,有什么问题与城北无关。这算是个小福利羊毛吧,关于万家金服,之前去年吧,城北也上过车,也拿到了东西安全下车了。本文是分享官方的。
  • 对于信用卡持卡人来说,逾期记录是一件非常头疼的事。特别是个人信用越来越重要,很多时候,贷款不下来都因为信用逾期。那么,信用卡逾期还款后果是什么呢?  信用卡逾期还款的后果:有的人信用卡透支后恶意欠款,甚至注销信用卡,以为银行不会找到自己。这种想法简直太天真了。如果是存心想要不还款,不但贷款买房买车受限制,出国、找工作、甚至自己的配偶的信用都将会受到影响,并且在个人的诚信档案中永远记录。 信用卡逾期还款会怎么样信用卡逾期还款怎么办?  刑法关于信用卡犯罪有这样的规定:超过规定限额或期限透支,并且发卡行两次催收后超过3个月仍不归还的,定性为恶意透支。恶意透支1万以上10万以下,认定为数额较大,处5年以下有期徒刑或拘役;10万到100万,数额巨大,处5年以上10年以下徒刑。  信用卡逾期后如何做?  1、最好继续使用这张卡。逾期后,最好的办法是继续使用此卡,用新的正常的还款记录覆盖原有的负面记录,一般24个月后就会产生新的信用记录,这样记录刷新后,个人信贷等都不会受到影响。  2、无力还款需及时说明。如果因为失业或者疾病导致无力按时还款,在最后还款期限到来之前,陈述自己经济状况,申明自己并非恶意欠款,可以申请延迟还款和利息优惠。可以尝试:主动打电话给客服申请延迟几天,一般是可以的。  小编提醒:信用卡逾期记录补救方法看似简单,操作起来却不是那么容易的。所以希望各位持卡人要多注意,最好合理消费,并按时还款,信用卡逾期记录严重性可大可小。尤其是想要使用信用卡申请贷款的更要注意。
  • 我的终身5000元卡下了5年了,试了下,也马上提额成功,总算1万固定额度了,本来都放弃建行信用卡,刷免年费后一年多没有用过了。
  • 交行新户首卡,昨天点你连接进去申请,秒批了,今天出卡号了查了下额度5万。高兴
  • TOP

    站点信息

    • 文章总数:114
    • 页面总数:1
    • 分类总数:3
    • 标签总数:3
    • 评论总数:95
    • 浏览总数:58271