厦门团购,闪团网,拉手网,日团网,厦团网,E团网,零点团,易购乐

日志主页 | 链接 | 标签 | 留言 | 管理

分享厦门最新团购信息:

厦门团购信息大全
厦门易购乐yg6.cn,厦门团购网!

 

Zend运行错误的3种解决方法

yaoee.com, 发表于:2010-02-28 14:54:11, 分类:IT知识 浏览( ) 评论( )  收藏这篇日志

环境:php+mysql+zend+iis   在windows2003平台下,php.ini位于c:\windows下

有个朋友根据网上的解决方法测试后 问题仍然无法解决,zend错误依然持续,并且每次zend频繁出错后远程服务器出现无法登陆的现象,乐博网尝试修改php.ini来解决此问题,打开php.ini找到以下语句:

[Zend]
zend_extension_manager.optimizer_ts="d:/Program Files/php_iis/zend/lib/Optimizer-3.3.0"
zend_extension_ts="d:/Program Files/php_iis/zend/lib/ZendExtensionManager.dll"

将zend屏蔽,修改为 :

[Zend]
;zend_extension_manager.optimizer_ts="d:/Program Files/php_iis/zend/lib/Optimizer-3.3.0"
;zend_extension_ts="d:/Program Files/php_iis/zend/lib/ZendExtensionManager.dll"

也就是在两句前加个分号;进行屏蔽,然后重启iis,令新的php配置生效,朋友的网站主要运行着几个UCenter1.5.0/UCenter Home1.5/Discuz! 7.0的程序,关闭zend后运行依然正常,此方法有局限性,当平台需要运行zend支持的程序,屏蔽后将无法使用zend.

附网上流传的2个方法

解决方法如下:
对比php两个版本的php.ini文件。
;extension=php_yaz.dll
;extension=php_zip.dll检查这个两个是否存在新的版本中。同时确认extension=php_zip.dll
前面的;去掉保存重启iis和mysql 大功搞成另外一种说法
eAccelerator v0.9.4-rc1, 这个php加速插件,把这个屏蔽掉就可以了其他方面:1.检查下c:\windows\temp\目录是否有iis用户组和NETWORK_SERVICE访问权限2.zend安装目录是否有iis用户组和NETWORK_SERVICE访问权限,写入权限.3.删除c:\WINDOWS\temp\ 下的垃圾文件.4.php.ini文件中设置upload_tmp_dir="c:\windows\temp\"(注意=两边的空格)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错误。

 


标签: mysql服务器
正在读取日志的评论数据,请稍后……
正在加载日志评论签写框,请稍后……
成员登录通道
正在载入成员登录通道...
BLOG 日志归档
BLOG 推荐日志
  • 暂时没有推荐日志
BLOG 站内搜索

BLOG 友情链接