Zend 出现 Unable to view file mapping 的解决方案
解决方法如下:
对比php两个版本的php.ini文件。
;extension=php_yaz.dll
;extension=php_zip.dll
前面的;去掉保存重启iis和mysql 大功搞成
eAccelerator v0.9.4-rc1, 这个php加速插件,把这个屏蔽掉就可以了
5.还有一条就是找不到ZendOptimizer.MemoryBase@SYSTEM文件吧,方法同上面,在c:\WINDOWS\temp\建一空文件,文件名ZendOptimizer.MemoryBase@SYSTEM即可
==================================================================================
查看“事件查看器”中出现一个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=…”前面的分号去掉。
================================================================================
前两天在本地调试PHP程序时,发现安装的VertrigoServ中,ZendOptimizer运行不正常,在C盘根目录下生成了个ZendOptimizer_errors文件,最主要的问题是下面两个:
Unable to open base address file:系统找不到指定的路径。
Unable to view file mapping:重叠 I/O 操作在进行中。
下面分享我的问题核心:出现这样的问题,一般是缓存目录指定错误所导致的!
步骤方法:右击我的电脑 - 属性 - 高级 - 环境变量 - 将用户配置里的TEMP与TMP的路径指定为系统变量里的TEMP与TMP的路径值:如%SystemRoot%\TEMP或者其他路径确定路径,如D:\Temp这个路径确定,重启电脑。
设置好的参考图片如下:
再次运行php服务器程序,C盘根目录下再不出现ZendOptimizer_errors.txt报告,报告里也不会出现上面的两个错误了,设置好的路径目录下自动生成了ZendOptimizer.MemoryBase@SYSTEM等这两个文件。问题解决!
2009年5月23日补充: 复制内容到剪贴板
代码:
解决办法:
1、修改C:\WINDOWS\Temp\目录的访问权限,使Zend可以对目录进行修改,一般添加IIS_WPG和Network Service的写入权限就够了。
2、有可能在C:\WINDOWS\temp\目录下找不到指定文件,查找该文件夹下是否有文件名ZendOptimizer.MemoryBase@SYSTEM和ZendOptimizer.MemoryBase@NETWORK SERVICE,如果没有,新建这两个文件,空文件即可。
3、php.ini文件中设置upload_tmp_dir = "c:\windows\temp\"(注意=两边的空格)。
4、还有可能就是没有读取ZEND目录的权限,为C:\Program Files\ZendOptimizer-2.6.2\lib\目录添加IIS_WPG和Network Service的读取权限(注意zend版本和安装目录不同时前面的路径也有所不同)
注意:前面提到的“C:\WINDOWS\Temp\”上当并非绝对,关键看php.ini文件中“upload_tmp_dir”等于什么路径。2009年3月25日补充:
在Windows Server 2003 系统的NTFS的文件系统中,还涉及到访问权限问题,如ZendOptimizer的默认安装目录为C:\Program Files\Zend,我们需要给Zend这个目录添加一个IIS的启动账户IIS_WPG的读取运行,列出目录,读取的权限。这样就能解决因权限导致的Unable to view file mapping错误。