西安人的城墙下,是西安人的火车

PHPWEB网站后台报错Fatal error: The encoded file has format major ID 1

解决phpweb网站页面出现Fatal error: Incompatible file format: The encoded file has format major ID 1的问题

phpweb的文件是经过zend加密的,将它放到主机空间上运行的时候遭遇如下问题:Fatal error: Incompatible file format: The encoded file has format major ID 3(或者1), whereas the Loader expects 4 in

官方通知如下:

[安装环境要求]
虚拟主机或在自备服务器中开设好的主机空间,主机环境要求:
PHP4.3.x-5.2.x/非安全模式/允许WEB文件上传
MYSQL4.2-5.x
zend optimizer 3.2以上

      1、php5.3以上版本无法加载zend optimizer,暂不支持
      2、第三方应用安装需要php5.2版本,低于此版本不能安装第三方应用,但不影响PHPWEB本身的运行

汇总该问题相关信息如下:

  1. 从PHP5.3开始如果要支持zendguard加密的PHP代码,必须安装zend guard loader,老的zend optimizer将不被支持。
  2. PHP5.2之前的Zend加密程序用Zend Optimizer解析。
  3. PHP5.3开始的Zend加密程序用Zend Guard Loader解析。

综上,造成该问题的原因是Zend Guard 5.1更新了加密PHP文件的算法来迎合PHP5.3新版本支持,用Zend Guard老版本加密过的PHP文件在 PHP5.3 + Zend Guard Loader的环境下都无法正常浏览,会报出文章开头的错误。

根据官方建议,phpweb系统最好使用php5.2的版本!

解决方法:

  • 可以把PHP程序源文件在Zend Guard 5.1下重新加密,然后才能浏览。本处因为拿到的就是加密商业代码,故放弃这一招。
  • 也可以把程序放到PHP5.2 + Zend Optimizer的环境下运行即可。本处选择它来运行这套加密程序。

把空间搬迁到了低版本PHP的环境下,搞定。摘录前后主机PHP环境如下:

  • 搬迁前:PHP5.3.17 + Zend Engine v2.3.0 + Zend Guard Loader v3.3
  • 搬迁后:PHP5.2.17 + Zend Engine v2.2.0 + Zend Optimizer v3.3.9

原创文章如转载,请注明本文链接:西秦记 » PHPWEB网站后台报错Fatal error: The encoded file has format major ID 1

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

专注于中小企业信息化解决方案

联系我们