0

それが可能かどうか疑問に思っています。もしそうなら、誰かが私を正しい方向に導いてくれませんか?

基本的に、現在の Linux ボックスで行っていることは次のとおりです。

<VirtualHost *:443>
    ServerName co.svnr.net
    ServerAdmin admin@svnr.net
    ServerAlias co

    <Location /shauny/test>
        DAV svn
        SVNPath /home/svn/public/shauny/test
        AuthName "Test repository"
    </Location>

    #a million other Locations later....

    SSLEngine on
    SSLCertificateFile /home/certs/svnr/server.crt
    SSLCertificateKeyFile /home/certs/svnr/server.key
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
</VirtualHost>

これは素晴らしく機能していますが、たとえば 50 以上の svn リポジトリには適していません。理想的な解決策は、スーパーグローバル $_GET でユーザー名/リポジトリを受け入れ、それらをリポジトリにリダイレクトする (存在する場合は 404 にリダイレクトする) PHP5 のハンドラー (Linux マシンでホストされている間) を指すことです。

しかし...それは可能ですか?
PHP5 は Subversion リポジトリと認証を読み取ることができますか?

私の意見では、使用状況などに基づいていくつかのログを生成できるため、PHP5でそれらを処理する方が実現可能です...

どうもありがとうございました。不明な点があればお知らせください。

4

2 に答える 2

1

開発ボックスにこの種のセットアップを行い (確かに 3 つのリポジトリしかありません)、Subversion ルートを指すように Location ディレクティブを設定し、SVNParentPath を使用しました。

<Location /shauny>
        DAV svn
        SVNParentPath /home/svn/public/shauny
        AuthName "Test repository"
</Location>
于 2011-02-11T17:18:12.017 に答える
0

はい、可能です。

SVNParentPath を調べます。それはおそらくあなたが求めているものです。仮想ホストのセットアップでどれだけうまく機能するかはわかりません。また、ディレクトリを移動する必要があるかもしれませんが (ディレクトリが親を共有していない場合)、おそらく正しい方向への一歩です。

異なる認証名で各レポを認証している場合など、異なるロケーションベースの設定が必要な場合にのみ問題が発生します。その場合は、構成をそのままにしておく方がよい場合があります。

PHPインターフェースを介してSVNモジュールをラップして、PHPコードを意地悪に追加する限り。理論的にはうまくいくはずですが、実際には避けたいと思います。あらゆる種類の SVN ロギングは、コミット、読み取りなどの操作で pre/post フックを追加することにより、リポジトリごとに実行できます。グローバルな「すべてのレポ」のロギングは、Apache ディレクティブを追加することでより適切に処理できます。

于 2011-02-11T17:17:17.577 に答える