今天早些时候,我按照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$
的日志文件
我现在知道这是一个权限问题,但是我不知道这些文件存储在哪里以及如何正确获得权限。有谁能给我指导去哪里看?
先感谢您!
最佳答案
解决了。
当在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;
}
关于php - Tuleap Docman权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34578430/