codecamp

常见问题

一般问题

Cobub Razor使用的是什么开源协议?

Cobub Razor使用了两种开源的协议:.

  • 对于Cobub Razor的Web端,使用GPL V3的协议。
  • 对于Cobub Razor的SDK端,如Android, iOS, Windows Phone 的SDK,则使用LGPL V3协议。

技术问题

为什么在Liunx下安装Cobub Razor,权限检查无法通过?

如果有些需要权限的目录没有被赋予相应的权限,则在系统检测步骤会出现权限检测未通过的提示。例如图中的情况:

                                                          

此时则最好把所部署的整个web端目录的拥有者更改为执行php解释器的那个用户。以下对Nginx和Apache的情况进行说明。

*nix环境下的情况

Nginx+php-fpm:

#查看php-fpm除master进程之外的几个进程是由哪个用户在执行,命令执行结果的第一列即是用户名,假设用户名为nobody

ps -ef | grep php-fpm

chown -R nobody Apache:

#查看执行apache除了根进程之外的几个进程的用户,命令执行结果的第一列即是用户名,假设用户名为nobody

ps -ef | grep httpd

chown -R nobody

P.S. 最好不要将目录权限设置为777, 有可能成为安全隐患。

Cobub Razor安装完成后,系统总是报错有部分表找不到?

请检查一下Mysql的配置文件,保证InnoDB的数据库引擎是可用的。有一些Mysql的默认配置里是禁用InnoDB引擎的。

Cobub Razor成功安装之后,客户端也运行了,但是报表上没有任何显示?

请确认:

  1. 定时任务的配置是成功的;
  2. 对于v0.2版本以及之前版本,需要在渠道下的自动更新里将客户端的APK文件上传,并指明版本号;
  3. 安装过程中,时区设置是否正确; 如未设置时区,请打开文件application/config/config.php确认$config['timezones']是否有值。例如,UTC +8:00会将$config['timezones'] = ‘UP8′. 更多的时间参考值,请参见这里;
  4. 定时任务默认是1个小时抽取一遍前一个小时的数据,不会立刻显示。如想手工操作,可以执行数据仓库所在数据库的存储过程:
  5. 以当前日期为2012年9月1日为例,当前时间为16:10:10,客户端上传数据的时间是15:55:55,则:
  6. call rundim();  (抽取维度表的相关数据) - call runfact(’2012-9-1 15:00:00′,’2012-9-1 15:59:59′); 抽取事实表的相关数据,时间段为前一个小时进入数据库的客户端数据
  7. call runsum(’2012-9-1′); 汇总当日的相关数据

开发 Cobub Razor

Cobub Razor是用什么语言写的?

Cobub Razor 的WEB端是使用的是PHP语言,并使用了CodeIgnitor的框架。

对于SDK:

  • Android SDK 使用了Java语言
  • iOS SDK使用了Objective-C语言
  • Windows Phone SDK使用了 C# 语言

我如何提交对于Cobub Razor的更改?

Cobub Razor的代码存放于Github,所有的更修需要通过Github的Pull Requests.

插件
定时任务
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }