当前位置:首页 > 技术文章 > openx > Openx 2.8.x 在php5.4.x下数据统计不能正常显示解决方案
Openx 2.8.x 在php5.4.x下数据统计不能正常显示解决方案
文章来源:本站原创  浏览次数:770  发布日期:2013-04-16

按照Openx的官方的安装需求主要

PHP Version >=5.1.4 <=5.2

使用的PHP 的默认设置主要包括下面这些

magic_quotes_runtime must be off

safe_mode must be off

register_argc_argv on (如果我们想以命令的方式运行维护脚本)

file_uploads on 如果使用HTTP 上传文件

安装时需要的PHP 扩展主要包括下面这些

一般我们都使用MySQL肯行需要PDO_MYSQL或者MySQLi

ZLib extension

FTP extension(可以不装)

GD extension 主要用于Openx中一些图表显示

penssl extension 或者  SSL-enabled curl extension

一定要开启timezone否则在开始安装的时候就会报错

Database 数据库支持

Openx默认是支持两种数据库MySQL和PostgreSQL

MySQL的最低版本官方给的是4.1我自己用的是5.5.28是没有任何问题的

官方给出的MySQL需要的权限如下:

SELECT
INSERT
UPDATE
DELETE
CREATE TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
LOCK TABLES

表类型在安装的时候会提示选择默认的是MyISAM,这里顺便提一下Openx的瓶颈主要就在MySQL,当并发比较高的时候可以考虑自己写扩展使用

Memcache或者MySQLHandlerSocket 插件修改下前端数据统计的部分。(这部分以后会更新上来)

因为自己本身没有使用过PostgreSQL这里就不做过多介绍了。

因为现在大多数都使用Nginx 或者更高的PHP版本这里主要想说的就是PHP5.4.x在安装好Openx后在查看数据统计(Statistics)时候不会显示任何数据只显示了一个空白的页面。这是因为PHP5.4以后对使用&函数传参作了修改,这部分可以去PHP官方看介绍。我这里提供一下这种问题修改源码的解决方案。

lib/OA/Admin/Statistics/Delivery/CommonEntity.php on line 292

1
2
3
4
5
6
 
$oPlugin->mergeAds(&$this->childrendata['ad_id']);
 
//修改后
 
$oPlugin->mergeAds($this->;childrendata['ad_id']);

lib/OA/Admin/Statistics/Delivery/CommonEntity.php on line 318

1
2
3
4
5
6
 
$oPlugin->mergeZones(&$this->childrendata['zone_id']);
 
//修改后
 
$oPlugin->mergeZones($this->childrendata['zone_id']);

找到292、318两行可以看到在调用方法的时候传参使用了&符号,在PHP5.4以后正确的方式是在定义的时候使用传参的时候没必要使用引用符号,为了方便小鸟理解(老鸟可以直接跳过)举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
function foo (&$param)
 
{
 
echo$param;
 
}
 
//php5.4:
 
$test=5;
 
foo(&$test);
 
//当在PHP5.4调用的时候使用以上方法调用乎报错//报错信息如下Fatal error: Call-time pass-by-reference has been removed
 
//因为在PHP5.4以后参数引用是放到函数定义中的调用的时候不用显示调用

现在我们就知道我们的解决方案就是去掉上面的&符号(查看修改后的上面的代码)

剩下还有一处就是当在查看全局历史的时候也不显示问题一样

lib/OA/Admin/Statistics/Delivery/CommonHistory.php on line 160

1
2
3
4
5
6
 
parent::prepare(&$aParams);
 
//修改后
 
parent::prepare($aParams);

这样你的Openx就能正常显示了。

这个是官方的安装需求地址:http://www.openx.com/docs/2.8/adminguide/System%20requirements


原文来自:Openx 2.8.x 在php5.4.x下数据统计不能正常显示解决方案 http://www.redyun.net/technology/93.html

红云案例Case