すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:ECS インスタンスでの SVN のデプロイと使用

最終更新日:May 16, 2026

Elastic Compute Service (ECS) インスタンスに HTTP または svnserve を使用して Subversion (SVN) をデプロイし、チェックアウト、アップデート、コミットを通じてコードを管理します。

前提条件

ECS インスタンスを作成します。詳細については、「カスタム起動タブを使用したインスタンスの作成」をご参照ください。

インスタンスは、次の要件を満たす必要があります。

  • インスタンスに静的パブリック IP アドレスまたは Elastic IP アドレス (EIP) があること。詳細については、「パブリック帯域幅の有効化」をご参照ください。

  • オペレーティングシステム:Alibaba Cloud Linux 3、Alibaba Cloud Linux 2、または CentOS 7.x。

  • インスタンスタイプ:少なくとも 4 vCPU と 4 GiB のメモリ。正確な仕様は、プロジェクトのサイズとチームの規模によって異なります。

  • セキュリティグループのインバウンドルールで、ポート 22、80、443 へのトラフィックが許可されていること。詳細については、「セキュリティグループルールの追加」をご参照ください。

    説明

    svnserve モードを使用する場合は、ポート 3690 へのトラフィックも許可する必要があります。

説明

このチュートリアルでは、SVN をデプロイするためのワンクリック環境構築機能を提供しています。 ワンクリックで実行

SVN のデプロイ

SVN は、HTTP と svnserve の 2 つのアクセスモードをサポートしています。次の表で比較し、いずれかを選択してください。

機能

HTTP モード

svnserve モード

プロトコル

HTTP

カスタム SVN プロトコル

アクセス方法

Web ブラウザーまたは SVN クライアント

SVN クライアントのみ

ポート

80

3690

セキュリティ

HTTPS 暗号化

デフォルトではプレーンテキスト、暗号化はオプション

設定

Web サーバー設定

SVN サーバー設定

機能サポート

権限管理やログ表示など、より多くの機能

より少ない機能

HTTP を使用した SVN のデプロイ

ステップ1:SVN のインストール

  1. Linux インスタンスに接続します。

    詳細については、「ワークベンチを使用した Linux インスタンスへの接続」をご参照ください。

  2. SVN をインストールします。

    sudo yum install -y subversion
  3. SVN のバージョンを確認します。

    svnserve --version

    次のような出力は、SVN がインストールされたことを示します。

    查看SVN版本

ステップ2:Apache のインストール

  1. httpd をインストールします。

    sudo yum install httpd -y
  2. httpd のバージョンを確認します。

    httpd -version

    次のような出力は、httpd がインストールされたことを示します。

    image.png

ステップ3:mod_dav_svn のインストール

mod_dav_svn は、SVN リポジトリへの Web アクセスを提供する Apache モジュールです。

mod_dav_svn をインストールします。

sudo yum install mod_dav_svn -y

ステップ4:SVN の設定

  1. SVN リポジトリを作成します。

    sudo mkdir /var/svn
    cd /var/svn
    sudo svnadmin create /var/svn/svnrepos
  2. SVN リポジトリのユーザーグループを apache に変更します。

    sudo chown -R apache:apache /var/svn/svnrepos
  3. 自動生成されたリポジトリファイルを表示します。

    cd svnrepos
    ls

    查看版本库文件

    次の表で、Subversion のディレクトリについて説明します。

    内容

    説明

    db

    すべてのバージョン管理データファイルを格納します。

    hooks

    フックスクリプトファイルを格納します。

    locks

    リポジトリにアクセスするクライアントを追跡します。

    format

    リポジトリのレイアウトバージョンを示す整数を含むテキストファイルです。

    conf

    アクセスアカウントと権限を含む SVN リポジトリの設定ファイルです。

  4. コマンドを実行して、SVN リポジトリのユーザーとパスワードを追加します。

    デフォルトでは、SVN はプレーンテキストのパスワードを使用しますが、HTTP ではハッシュ化されたパスワードが必要です。別の passwd ファイルを生成します。この例では、ユーザー名が userTest、パスワードが passWDTest のユーザーが追加されます。次のいずれかのコマンドを実行します。

    • 最初のユーザーを追加するには、-c パラメーターを使用してファイルを作成します。

      sudo htpasswd -c /var/svn/svnrepos/conf/passwd userTest
    • 2人目以降のユーザーを追加するには、-c を省略します。

      sudo htpasswd /var/svn/svnrepos/conf/passwd userTest

    プロンプトに従ってパスワードを設定します。

  5. conf ディレクトリに移動します。

    cd /var/svn/svnrepos/conf/
  6. アカウントの読み取り権限と書き込み権限を設定します。

    1. アクセス制御ファイルを開きます。

      sudo vim authz
    2. i を押して編集モードに入ります。

    3. ファイルの末尾に次のコードを追加します。userTest はアカウント、r は読み取り権限、w は書き込み権限です。

      [/]
      userTest = rw

      svn-4

    4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  7. SVN サービスの設定を変更します。

    1. SVN サービスの設定ファイルを開きます。

      sudo vim svnserve.conf
    2. i を押して編集モードに入ります。

    3. 次の行を見つけ、コメント記号 (#) と先頭のスペースを削除します。

      説明

      各行はスペースで始まってはならず、等号 (=) の両側にスペースが必要です。

      anon-access = read
      auth-access = write
      password-db = passwd
      authz-db = authz
      realm = /var/svn/svnrepos

      image

    4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  8. SVN リポジトリを起動します。

    このコマンドはリポジトリを直接指定します。

    sudo svnserve -d -r /var/svn/svnrepos/
    説明

    SVN サービスを停止するには、killall svnserve コマンドを実行します。

  9. SVN サービスが起動しているかどうかを確認します。

    ps -ef | grep svn

    次のような出力は、SVN サービスが実行中であることを示します。查看SVN服务状态

ステップ5:Apache の設定

  1. httpd 設定ファイルを作成して編集します。

    sudo vim /etc/httpd/conf.d/subversion.conf
  2. i を押して編集モードに入ります。

  3. subversion.conf ファイルに次の設定を入力します。

    <Location /svn>
    DAV svn
    SVNParentPath /var/svn
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /var/svn/svnrepos/conf/authz
    AuthUserFile /var/svn/svnrepos/conf/passwd
    Require valid-user
    </Location>
  4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  5. Apache サービスを起動します。

    sudo systemctl start httpd.service

svnserve を使用した SVN のデプロイ

ステップ1:SVN のインストール

  1. Linux インスタンスに接続します。

    詳細については、「ワークベンチを使用した Linux インスタンスへの接続」をご参照ください。

  2. SVN をインストールします。

    sudo yum install -y subversion
  3. SVN のバージョンを確認します。

    svnserve --version

    次のような出力は、SVN がインストールされたことを示します。

    查看SVN版本

ステップ2:SVN の設定

  1. SVN リポジトリを作成します。

    sudo mkdir /var/svn
    cd /var/svn
    sudo svnadmin create /var/svn/svnrepos
  2. 自動生成されたリポジトリファイルを表示します。

    cd svnrepos
    ls

    查看版本库文件

    次の表で、Subversion のディレクトリについて説明します。

    内容

    説明

    db

    すべてのバージョン管理データファイルを格納します。

    hooks

    フックスクリプトファイルを格納します。

    locks

    リポジトリにアクセスするクライアントを追跡します。

    format

    リポジトリのレイアウトバージョンを示す整数を含むテキストファイルです。

    conf

    アクセスアカウントと権限を含む SVN リポジトリの設定ファイルです。

  3. SVN リポジトリのユーザー名とパスワードを設定します。

    1. ユーザー設定ファイルを開きます。

      cd conf/
      sudo vim passwd
    2. i を押して編集モードに入ります。

    3. [users] セクションに移動し、ユーザー名とパスワードを追加します。

      説明

      フォーマット:username = password。たとえば、「userTest = passWDTest」のように指定します。等号 (=) の両側にスペースが必要です。

      svn-3

    4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  4. アカウントの読み取り権限と書き込み権限を設定します。

    1. アクセス制御ファイルを開きます。

      sudo vim authz
    2. i を押して編集モードに入ります。

    3. ファイルの末尾に次のコードを追加します。userTest はアカウント、r は読み取り権限、w は書き込み権限です。

      [/]
      userTest = rw

      svn-4

    4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  5. SVN サービスの設定を変更します。

    1. SVN サービスの設定ファイルを開きます。

      sudo vim svnserve.conf
    2. i を押して編集モードに入ります。

    3. 次の行を見つけ、コメント記号 (#) と先頭のスペースを削除します。

      説明

      各行はスペースで始まってはならず、等号 (=) の両側にスペースが必要です。

      anon-access = read
      auth-access = write
      password-db = passwd
      authz-db = authz
      realm = /var/svn/svnrepos

      image

    4. Esc キーを押し、:wq と入力して Enter キーを押し、保存して終了します。

  6. SVN リポジトリを起動します。

    このコマンドはリポジトリを直接指定します。

    sudo svnserve -d -r /var/svn/svnrepos/
    説明

    SVN サービスを停止するには、killall svnserve コマンドを実行します。

  7. SVN サービスが起動しているかどうかを確認します。

    ps -ef | grep svn

    次のような出力は、SVN サービスが実行中であることを示します。查看SVN服务状态

SVN の使用

SVN でコードを管理するには、次の手順に従います。

  1. チェックアウト:ソースコードをローカルコンピューターにチェックアウトします。

  2. 他のユーザーがソースコードを変更し、リポジトリにコミットします。

  3. アップデート:最新のコードを取得します。

  4. ソースコードを変更し、デバッグします。

  5. コミット:変更したコードをリポジトリにコミットします。これにより、他のプログラマーが変更内容を確認できるようになります。

ソースコードのローカルディレクトリへのチェックアウト (Checkout)

  1. ローカルの Windows コンピューターに TortoiseSVN クライアントをダウンロードしてインストールします。

  2. ローカルプロジェクトフォルダーの空白領域を右クリックします。

    この例では、フォルダーは C:\Test です。

  3. ポップアップメニューで、[SVN チェックアウト...] を選択します。

    snv-1

  4. 以下の情報を入力し、[OK] をクリックします:

    • [リポジトリの URL]:ソースコードが格納されている URL です。

      • HTTP アクセスモード:URL のフォーマットは http://<ECS インスタンスのパブリック IP アドレス>/svn/<SVN リポジトリ名> です。

      • svnserve アクセスモード:URL のフォーマットは svn://<インスタンスのパブリック IP アドレス>/ です。

        説明

        SVN サービスがリポジトリの親ディレクトリで開始された場合、SVN チェックアウト URL にリポジトリ名を追加します。

    • [チェックアウトディレクトリ]: ソースコード用のローカルディレクトリ。この例では C:\Test です。

    svn-2

    説明

    初回ログイン時、[passwd] ファイルで設定したユーザー名とパスワードを入力します。

    以下にチェックアウトが成功した場合の画面を示します。svn-5

アップデートの取得 (Update)

サーバー側の SVN リポジトリが更新された後、ローカルプロジェクトフォルダーの空白領域を右クリックし、[SVN 更新] を選択して最新のプロジェクトをダウンロードします。

image.png

説明

元のプロジェクトフォルダーで [SVN Update] を実行すると、既存のコンテンツが上書きされます。データ損失を防ぐため、アップデートする前にプロジェクトをバックアップしてください。

変更のコミット (Commit)

ローカルでの変更をサーバー側のリポジトリにコミットします。

  1. プロジェクトファイルの空白領域を右クリックし、[SVN コミット...] を選択します。

    image.png

  2. バージョン更新コメントを入力し、コミットするコンテンツを選択して、[OK] をクリックします。

    ローカルプロジェクトがリポジトリプロジェクトを上書きします。

    image.png

    説明
    • 2人のユーザーが変更をコミットした場合、バージョンが古くなっているため、後のコミットは失敗します。プロジェクトをバックアップし、サーバーから最新バージョンをダウンロードして、ローカルフォルダーを変更内容で上書きしてから、[SVN Commit] をクリックしてください。

    • コミットされたプロジェクト内のファイルを削除すると、次のようなメッセージが表示されます。显示删除文件

ファイルの復元

SVN で削除されたファイルを復元します。

  1. ローカルのプロジェクトフォルダーを開き、右クリックして [SVN チェックアウト...] を選択します。

  2. ファイルの1つを削除します。

  3. 変更をコミットしたかどうかに基づいて、適切な操作を選択します。

    • コミットされていない場合は、空白領域を右クリックし、[TortoiseSVN] > [リバート...]を選択します。

      image.png

    • すでにコミットしている場合は、サーバー側のリポジトリが同期され、リポジトリ上のファイルも削除されます。次の手順で復元します。

      1. 空白の領域を右クリックし、[TortoiseSVN] > [ログを表示]を選択します。

      2. 削除のログエントリをクリックします。削除されたデータが下に表示されます。

        image.png

      3. 削除されたデータを右クリックし、[リビジョンを...に保存] をクリックします。

        image.png

      4. ファイル名を設定して [保存] をクリックすると、ファイルが元の場所に復元されます。image.png

  4. 元のフォルダーを開き、[SVN コミット...] をクリックしてリポジトリと同期します。

よくある質問

TortoiseSVN を使用して SVN サーバーにアクセスすると、"The host did not respond" というプロンプトが表示されるのはなぜですか?

image

考えられる原因:

  • SVN サーバーが起動していない。

  • 必要なポートがセキュリティグループで開かれていない。

  • firewalld ファイアウォールが有効になっているが、必要なポートが許可されていない。

次のようにトラブルシューティングします。

  1. SVN サービスの状態を確認します。

    ps -ef | grep svn

    次のような出力は、SVN サービスが実行中であることを示します。そうでない場合は、sudo svnserve -d -r /var/svn/svnrepos/ を実行して起動します。查看SVN服务状态

  2. セキュリティグループのルールが SVN サーバーの要件を満たしているかどうかを確認します。

    1. HTTP モード:ポート 22、80、443。

    2. svnserve モード:ポート 22、80、443、3690。

  3. firewalld ファイアウォールを確認します。

    1. firewalld の状態を確認します。

      sudo firewall-cmd --state
      • not running と表示された場合、ファイアウォールは無効であり、SVN には影響しません。

      • running と表示された場合、ファイアウォールは有効です。次のステップに進みます。

    2. ポート 3690 など、必要な SVN ポートへのトラフィックを許可します。

      sudo firewall-cmd --add-port=3690/tcp --permanent
    3. firewalld の設定をリロードします。

      sudo systemctl reload firewalld