В Tuleap Docman отказано в разрешении

1

Ранее сегодня я установил Tuleap, как описано в CentOS 6.7. Большинство из них работает, но когда я пытаюсь добавить документ с DocumentManager, я получаю следующую ошибку: Ошибка при создании начальной версии.

Я заглянул в файлы журнала httpd [Sun Jan 03 16:45:36 2016] [error] [client 192.168.99.6] PHP Warning: mkdir():$Permission denied in/usr/share/tuleap/plugins/docman/include/Docman_FileStorage.class.php on line 112, referer: (domain)/plugins/docman/?group_id=101$

Теперь я знаю, что это проблема с разрешением, но я не знаю, где хранятся эти файлы и как правильно получить разрешения. Кто-нибудь может дать мне направление, где искать?

Заранее спасибо!

  • 0
    Вы отключили selinux?
  • 0
    Да, это уже было решено. Что-то не так с начальной конфигурацией ..
Теги:
centos
mkdir
tuleap

1 ответ

0

Решаемые.

Когда он внимательно следил за журналом ошибок httpd, он заявил, что он хочет поместить файл в корневой каталог. Конечно, это не разрешено. Поэтому было необходимо изменить путь к файлу, который автоматически создается Domcman.

Я нашел файл Docman_FileStorage.class.php который вызывает автоматическое создание пути внутри /usr/share/tuleap/plugins/docman/include и отредактировал функцию getPath/переменную $path to /var/lib/tuleap/docman, поэтому он будет иметь правильный путь.

Полную отредактированную функцию см. Ниже:

    */
function _getPath($name, $group_id, $item_id, $version_number) {
    $name = preg_replace(''[^a-z0-9_-]'i', '_', $name);
    $name = preg_replace(''_{2,}'', '_', $name);
    $hash1 = $item_id % 10;
    $hash2 = ( ($item_id - $hash1) / 10) % 10;

    $path_elements = array($this->root, $this->_getGroupName($group_id), $hash2, $hash1, $item_id, $version_number);
    $path = '/var/lib/tuleap/docman';
    foreach($path_elements as $elem) {
        $path .= $elem .'/';
        if (!is_dir($path)) {
            mkdir($path, 0700);
        }
    }

    $path .= $name;
    return $path;
}
  • 0
    Как разработчик Tuleap, я бы не советовал продолжать такую модификацию, так как она по умолчанию работает на других серверах. Более того, корневой путь уже задан в строке $path_elements . Я бы проверил в конфигурации плагина docman значение "docman_root" вместо
  • 0
    Я посмотрю на это. Спасибо за совет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню