产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 疑似amh BUG反馈

zsx
铝牌会员
355.00 价值分

zsx 发表于 2015-08-26 18:31:59
本帖最后由 zsx 于 2015-9-1 19:33 编辑

这里是Z-BlogPHP的作者。

近日我们接到不少反馈报告,如:
http://bbs.zblogcn.com/forum.php?mod=viewthread&tid=90160&extra=
共同特征是使用了AMH 4.2。
经过各种调试,我们确定了出错代码,并予以修复。现进行反馈:
https://github.com/zblogcn/zblogphp/commit/81c4d2a470aad3520beff3e83d0477f5ff893a25

先是环境: CentOS 6 (2.6.32-358.6.2.el6.x86_64)、nginx1.4.7、PHP 5.3.27 x64。

问题现象:无法通过simplexml_load_file直接读取文件,必须使用file_get_contents + simplexml_load_string替代。

在我们的测试机上,文件结构如图:



因为amh对路径进行了虚拟,所以此时,在KODExplorer内查看,233.xml在/web/amh/下,如图



以下是我们测试用的文件内容:

233.xml内内容:
<?xml version="1.0" encoding="utf-8"?>
<hello>
<world>233</world>
</hello>
amh-test.php内容:
<?php
error_reporting(-1);
ini_set('display_errors', 1);

define('FILE_PATH', '/web/amh/233.xml');
$ret = array(
"simplexml_load_file" => @simplexml_load_file(FILE_PATH),
"readable" => is_readable(FILE_PATH),
"file_get_contents" => file_get_contents(FILE_PATH),
"simplexml_load_string" => simplexml_load_string(file_get_contents(FILE_PATH))
);
var_dump($ret);
返回:



@号去掉,得:
(2)E_WARNING : simplexml_load_file(): I/O warning : failed to load external entity "/web/amh/233.xml" (set_error_handler)


于是可以推断出结论,即simplexml_load_file无法直接加载文件。我们直接把真实物理路径交给simplexml_load_file,也是无法直接加载。
我们未继续向底层深究。根据错误现象,初步估计是amh部分的路径虚拟化未对simplexml组件生效,同时沙盒或类似功能对其进行了限制。
特此反馈,谢谢!

2015-08-26 18:31:59 1

Captain
金牌会员
6928.40 价值分

妹子来看下~
  支持 (0分)  反对 (0分)
回复  2015-08-26 19:10:45 2

诸葛御风
金牌会员
5691.90 价值分

A大来看一下
另外就是5.6.9的php pdo支持有问题啊
  支持 (0分)  反对 (0分)
回复  2015-08-26 20:15:04 3

amysql
创始人
16530.81 价值分

测试在amchroot模块切换兼容模式是否正常?
  支持 (0分)  反对 (0分)
回复  2015-08-27 16:19:24 4

AMH面板 - 好用高效低占用、安全可靠极稳定

amysql
创始人
16530.81 价值分

引用:
诸葛御风 发表于 2015-8-26 20:15
A大来看一下
另外就是5.6.9的php pdo支持有问题啊


具体是什么问题?
工单反馈下出错的信息。
  支持 (0分)  反对 (0分)
回复  2015-08-27 16:21:00 5

zsx
铝牌会员
355.00 价值分

引用:
amysql 发表于 2015-8-27 16:19
测试在amchroot模块切换兼容模式是否正常?


调整为兼容模式后,路径改变为/home/wwwroot/xxxxx/web/amh/233.xml。此时可以正常读取数据。

PS: 我头像改不了……改完后提交还是原样,Chrome 46 + 福州联通
  支持 (0分)  反对 (0分)
回复  2015-08-27 17:16:30 6

amysql
创始人
16530.81 价值分

引用:
zsx 发表于 2015-8-27 17:16
调整为兼容模式后,路径改变为/home/wwwroot/xxxxx/web/amh/233.xml。此时可以正常读取数据。

PS: 我头 ...

那估计这个函数是调用了系统某些组件,在安全模式下被限制了。
amh前端有缓存,头像被缓存了吧,过些时间会自动更新。
  支持 (0分)  反对 (0分)
回复  2015-08-27 17:40:05 7

zsx
铝牌会员
355.00 价值分

引用:
amysql 发表于 2015-8-27 17:40
那估计这个函数是调用了系统某些组件,在安全模式下被限制了。


那请麻烦查一下吧,这个函数是PHP 5.1.2后默认打开的函数
http://php.net/manual/zh/function.simplexml-load-file.php
  支持 (0分)  反对 (0分)
回复  2015-08-27 17:42:00 8

amysql
创始人
16530.81 价值分

引用:
zsx 发表于 2015-8-27 17:42
那请麻烦查一下吧,这个函数是PHP 5.1.2后默认打开的函数
http://php.net/manual/zh/function.simplexml- ...


不是函数开启的问题,是在AMH的安全模式下限制了。
可以切换兼容模式,
或用你上面的simplexml_load_string方案处理(推荐)。
  支持 (0分)  反对 (0分)
回复  2015-09-01 12:49:39 9

zsx
铝牌会员
355.00 价值分

引用:
amysql 发表于 2015-9-1 12:49
不是函数开启的问题,是在AMH的安全模式下限制了。
可以切换兼容模式,
或用你上面的simplexml_load_stri ...


我知道是在amh的安全模式下被限制了……所以请麻烦查一下相关内容
因为这个函数实在是太常见了,我们无法保证第三方主题或插件不使用这个函数,以致再在这个函数上跌倒。
https://github.com/search?l=php&q=simplexml_load_file&type=Code&utf8=%E2%9C%93
  支持 (0分)  反对 (0分)
回复  2015-09-01 12:53:07 10
 1 2 >  (总2页)
AMH社区列表
用户服务中心