我使用CloudControl进行托管,我想设置一个服务器(可能具有负载均衡支持)来托管我所有网站的piwik。唯一的问题是CloudControlled允许访问的唯一可写目录由$ _SERVER ['TMPDIR']定义。
是否可以修改piwik以使用此目录来满足其所有文件写入需求?
我还会遇到使用负载平衡的任何问题吗?自动生成的报告是由负载均衡器后面的每个节点生成的,因为它们彼此不了解?
答案 0 :(得分:3)
即使您更新,我们的想法仍然是为您的系统保留此更改。
这很容易做到:在piwik 主文件夹中创建bootstrap.php
。
这是所述文件的内容:
<?php
define('PIWIK_USER_PATH', $_SERVER['TMPDIR']);
您可以仔细检查一下:在index.php
中,您应该看到它检查同一文件夹中的bootstrap.php
文件。它包含在可用时,这使您可以进行少量自定义,并在更新时保留它们。例如。我在过去三年左右从svn运行了piwik,并在那里进行了一些自定义更改。
答案 1 :(得分:1)
我能够确认这项工作的代码太多了,但常量PIWIK_USER_PATH
似乎被用作文件io的基础根。考虑到这一点,编辑 index.php ,围绕 23 行,最初是:
if(!defined('PIWIK_USER_PATH'))
{
define('PIWIK_USER_PATH', PIWIK_DOCUMENT_ROOT);
}
类似于:
if(!defined('PIWIK_USER_PATH'))
{
define('PIWIK_USER_PATH', $_SERVER['TMPDIR']);
}
可能会工作 - 但是当它试图在原始位置读取文件时会发生什么?但是,由于这是一个临时目录,它可能不可行,在这种情况下,使用override_function或类似方法与持久存储(您的数据库)配对的方法也可能工作 - 通过数据库加载/保存例程覆盖文件功能;很明显,这会打开另一种符合圣经的蠕虫,因此,我的最终建议是让你获得另一个限制较少的主人。