【Subversionサーバ】Subversion導入

  • Subversion導入

    apt-get install subversion subversion-tools libapache2-svn
    

    subversion:Subversion本体
    subversion-tools:バックアップコマンドが利用できたりするツール
    libapache2-svn:Apache2とSubversionの連携用

    Subversionの設定を変更します。

    vi /etc/subversion/config
    
    下記内容を変更
    # クライアントの改行コードをサーバで統一
    # enable-auto-props = yes
    ↓
    enable-auto-props = yes
    

    Subversionのリポジトリを作成します。

    mkdir /var/www/svn
    svnadmin create /var/www/svn/z-test
    chown -R www-data.www-data /var/www/svn/z-test
    

    外部から接続するため、ユーザIDとパスワードを設定します。

    htpasswd -c /etc/apache2/dav_svn.passwd ユーザー名
    New password:パスワード
    Re-type new password:パスワード
    Adding password for user ユーザー名
    

    Apache2とSubversionを繋ぐための設定をします。
    また、Subersionには直接アクセス、WebDAV、SVNの3つのプロトコルのうち、
    WebDAVでBasic認証で試します。

    vi /etc/apache2/mods-enabled/dav_svn.conf
    
    # 下記内容を最終行に追加
    <Location /svn>
        DAV svn
        SVNParentPath /var/www/svn
    
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        AuthzSVNAccessFile /etc/apache2/dav_svn.authz
        Require valid-user
    </Location>
    

    権限ファイルにユーザを追加します。

    vi /etc/apache2/dav_svn.authz
    
    # 下記内容を追加
    # z-testより下は追加ユーザであればRead、Write可能
    # それ以外はRead、Write不可
    [z-test:/]
    manager = ユーザー名
    [/]
    * =
    @manager = rw
    

    モジュールを有効化します。

    a2enmod authz_svn
    
    Considering dependency dav_svn for authz_svn:
    Considering dependency dav for dav_svn:
    Module dav already enabled
    Module dav_svn already enabled
    Enabling module authz_svn.
    To activate the new configuration, you need to run:
      service apache2 restart
    

    記載の通り、Apache2を再起動します。

    service apache2 restart
    

    最後にSubversionにはhttpsで強制的に接続するため、「.htaccess」を追加します。

    vi /var/www/svn/.htaccess
    
    # 下記内容を追加
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
    
    chown -R www-data.www-data /var/www/svn/.htaccess
    

    「https://z-area.net/svn/z-test/」で接続し、ログインすればリポジトリを参照可能。