1

CentOS 5.8(CentOSリリース5.8(最終版))でSubversionサーバーをセットアップしようとしています。CentOSの経験はほとんどありません。私はこれまでSuSEとUbuntuでしか作業していません。

私が抱えている問題は、http://domain.tld/svnを介してSVNリポジトリにアクセスしようとすると、「禁止されています。このサーバーの/svn/にアクセスする権限がありません」というメッセージが表示されることです。

これらは私のセットアップの手順です:

yum install mod_dav_svn subversion

/etc/httpd/conf.d/subversion.confのコンテンツ

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
</Location>

関連するパスを作成する

mkdir -p /var/www/svn && cd /var/www/svn
svnadmin create repos
chown -R apache:apache repos
service httpd restart

わからない、何が悪いのか...

CentOS 5.7の他のソースは、追加の手順としてこれを提案しました。

chcon -R -t httpd_sys_content_t /var/www/svn/repos
chcon -R -t httpd_sys_rw_content_t /var/www/svn/repos

これを実行すると、chcon: can't apply partial context to unlabeled file /var/www/svn/repos

だから私は周りを見回して、私が使うべきだと言ったユーザーを見つけました

chcon -h system_u:object_r:httpd_sys_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svn/repos/*

それ以外の

chcon -R -t httpd_sys_content_t /var/www/svn/repos

だから私はまた2行を追加しましたhttpd_sys_rw_content_t

chcon -h system_u:object_r:httpd_sys_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svn/repos/*
chcon -h system_u:object_r:httpd_sys_rw_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_rw_content_t /var/www/svn/repos/*

問題はまだ残っています...

service httpd restart

問題はまだ残っています...

編集

また、subversion.confに認証ルールを追加しました。

<LimitExcept GET PROPFIND OPTIONS REPORT>
    AuthzSVNAccessFile /etc/subversion/svn-access
    # Require SSL connection for password protection.
    # SSLRequireSSL

    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /etc/subversion/svn-passwd
    Require valid-user
</LimitExcept>

これらの設定ルールは、SuSEで以前に実行されていたインストールからコピーされます。ファイルには有効な内容が含まれています。問題はまだ残っています...

編集

認証が常に適用されるように、<LimitExcept GET PROPFIND OPTIONS REPORT>と行を削除しました。</LimitExcept>ブラウザからsvnにアクセスすると、HTTP-Basic-Authウィンドウが表示されます。既存の正しいクレデンシャルを入力すると、「禁止」メッセージが再び表示されます。問題はまだ残っています...

編集

私はついにそれを実行しました。SVNPath /var/www/svn/reposの代わりにを介してリポジトリパスを設定しましたSVNParentPath /var/www/svn。今、すべてが大丈夫です...

4

2 に答える 2

1

認証を実行するようにApacheに指示する必要があります(Subversionがルールで使用するユーザーを持つようにするため)

あなたの場所であなたのディレクティブにこのようなものを追加してください:<Location>

SSLRequireSSL

AuthType Basic
AuthPAM_Enabled on 
AuthName "Subversion"
AuthUserFile /etc/shadow
Require valid-user

この例ではPAMを使用していますが、他にも多くの可能性があります。Apachehttpdのマニュアルを参照してください。

于 2012-07-22T15:45:36.477 に答える
0

これを試して:

<Location /svn>
    DAV svn
    SVNPath /var/www/svn
</Location>
于 2012-08-02T18:05:09.333 に答える