2

我使用 CloudControl 进行托管,我想设置一个服务器(可能支持负载平衡)来为我的所有网站托管 piwik。唯一的问题是 CloudControlled 允许您访问的唯一可写目录是由 $_SERVER['TMPDIR'] 定义的。

是否可以修改 piwik 以使用该目录来满足其所有文件写入需求?

而且我会在使用负载平衡时遇到任何问题吗?我的负载均衡器后面的每个节点都会生成自动生成的报告之类的东西,因为它们彼此不知道?

4

2 回答 2

3

我们的想法是即使在更新时也为您的系统保留此更改。

这很容易做到:bootstrap.php在 piwik文件夹中创建一个。

这是所述文件的内容:

<?php
define('PIWIK_USER_PATH', $_SERVER['TMPDIR']);

您可以仔细检查:在 中index.php,您应该看到它检查bootstrap.php同一文件夹中的文件。它在可用时包含在内,这使您可以进行少量自定义并在更新时保留它们。例如,在过去三年左右的时间里,我从 svn 运行 piwik,并在其中进行了一些自定义更改。

于 2011-09-09T03:45:46.440 回答
1

有太多代码让我无法确认它是否有效,但该常量PIWIK_USER_PATH似乎被用作文件 io.xml 的基本根目录。考虑到这一点,在第23行附近编辑index.php ,最初是:

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或类似方法与持久存储(您的数据库)配对的方法也可能有效 - 通过使用数据库加载覆盖文件函数/保存常规;显然,这打开了另一罐圣经比例的蠕虫,因此,我的最终建议是让您获得另一个限制较少的宿主。

于 2011-09-07T20:18:24.963 回答