Хостинг piwik на сервере с файловой системой только для чтения - PullRequest
2 голосов
/ 01 сентября 2011

Я использую CloudControl для хостинга и хочу настроить сервер (возможно, с поддержкой балансировки нагрузки) для размещения piwik для всех моих веб-сайтов.Единственная проблема заключается в том, что единственный доступный для записи каталог, к которому CloudControlled позволяет получить доступ, определяется $ _SERVER ['TMPDIR'].

Можно ли изменить piwik для использования этого каталога для всех своих потребностей в записи файлов?

А также у меня возникнут проблемы с балансировкой нагрузки?Что-то вроде автоматически генерируемых отчетов, генерируемых каждым узлом за моим балансировщиком нагрузки, так как они не знают друг друга?

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Идея состоит в том, чтобы сохранить это изменение для вашей системы даже при обновлении.

Это легко сделать: создайте bootstrap.php внутри папки piwik main .

Это содержимое указанного файла:

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

Вы можете дважды проверить это: в index.php вы должны увидеть, что он проверяет файл bootstrap.php в той же папке.Он включен, когда он доступен, и позволяет вам выполнять небольшие настройки и сохранять их даже при обновлении.Например, я запускал piwik из svn последние три года или около того, и там есть некоторые пользовательские изменения.

1 голос
/ 08 сентября 2011

Слишком много кода, чтобы я мог подтвердить, что это работает, но константа 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 или аналогичный метод, в сочетании с постоянным хранилищем (вашей базой данных), может также работать - переопределяя файловые функции с помощью процедуры загрузки / сохранения базы данных; очевидно, это открывает еще одну банку червей библейских масштабов, поэтому моя последняя рекомендация - получить еще один менее ограничительный хост.

...