2016-01-03 43 views
1

今天早些时候,我安装了Tuleap,就像CentOS 6.7的指示一样。 大部分工作原理,但是当我尝试使用DocumentManager添加文档时,出现以下错误:创建初始版本时出错。Tuleap Docman权限被拒绝

我看着的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

是的,它已经解决了。初始配置有问题.. –

回答

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; 
} 
+0

作为Tuleap开发人员,我不会建议您继续进行此类修改,因为它默认在其他服务器上运行。此外,根路径已经在'$ path_elements'行预设置。我将在docman插件配置中检查“docman_root”的值,而不是 –

+0

我会查看它。感谢您的建议! –