Zend Optimizer 出错造成站点无法访问

今天有朋友的服务器出现站点无法访问的状况,登录进去看到Apache占用了服务器的大部分内存导致服务器剩余内存很少,如果重启Apache的话依然无法释放内存,只有重启服务器之后才正常。

查看“事件查看器”中出现一个Zend Optimizer错误,而且这个错误都是每次启动服务器之后产生的:

事件类型: 错误
事件来源: Zend Optimizer
事件种类: 无
事件 ID: 487
日期: 2008-2-28
事件: 9:22:15
用户: N/A
计算机: XXX
描述:
事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: Unable to view file mapping, 试图访问无效的地址。

查阅了一下网上的资料,其实只有一个版本,具体内容可以看下面的参考资料。我这里结合自己的解决方法总结一下:

首先如果你的PHP使用了eAccelerator则将其注释掉就可以了,这是因为Zend Optimizer同eAccelerator相冲突。其实二者都是用于加速PHP程序的,只要使用其中的一个就可以了。

如果你的PHP没有使用eAccelerator的话则大部分是权限的问题了,这种情况在Apache+PHP中很少见,通常都是在IIS+PHP这种搭配中出现的比较多。这个时候只需要修改%SystemRoot%\Temp的权限,设置为EveryOne全部允许;然后如果该目录下没有ZendOptimizer.MemoryBase@SYSTEM文件的话就手动新建一个文本文件然后命名为ZendOptimizer.MemoryBase@SYSTEM即可。

如果还是有问题的话可以查看一下php下的ext目录中是否有php_yaz.dll和php_zip.dll两个文件,有哪一个就在php.ini将 "extension=..."前面的分号去掉。

做完上面的操作之后如果依然出现问题的话请在下面留言或给我mail,可以再继续探讨。

[后续(2008.3.4):]做完上述的操作之后依然出现上面的错误,不过错误出现的次数少了而已,最后不得已将Zend卸载掉了。现在感觉好像应该是Zend Optimizer的一个bug吧。

参考资料:
事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到。
解决“事件ID(487)的描述(在资源(Zend Optimizer)中)无法找到”问题

One thought to “Zend Optimizer 出错造成站点无法访问”

  1. 没用的解决方法,网上能找到的方法都试过,无法解决。
    现在我的每天经常出现这样问题,纠葛!!!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注