1

今天早些时候,我按照 CentOS 6.7 上的说明安装了 Tuleap。大部分都有效,但是当我尝试使用 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$

我现在知道这是一个权限问题,但我不知道这些文件存储在哪里以及如何获得正确的权限。有没有人可以给我一个关于在哪里看的方向?

先感谢您!

4

1 回答 1

0

解决了。

在 httpd 错误日志中仔细观察时,它表示要将文件放在根目录中。当然这是不允许的。因此,需要更改 Domcman 自动创建的文件路径。

我在Docman_FileStorage.class.php内部找到了导致自动路径创建的文件,/usr/share/tuleap/plugins/docman/include并将 getPath 函数/变量编辑$path/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;
}
于 2016-01-04T11:40:58.257 回答