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/includegetPath 関数/変数$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 に答える