서버 설정 · 3 min read · Jan 20, 2026

우분투 서버에서 서브버전과 트랙을 가상 호스트로 설정하기

우분투 서버에서 서브버전과 트랙을 가상 호스트로 설정하기

이 방법서는 서브버전 버전 관리 시스템을 설정하고, 소프트웨어 개발 프로젝트를 위한 프로젝트 관리자 트랙과 함께 작동하도록 하는 과정을 설명합니다. 이는 우분투(또는 가능하면 데비안)에서 실행되는 서버에서 이루어집니다. Openject Consulting에서 제공합니다.

서브버전 설정하기

자세한 정보는 대체 설정을 포함하여 서브버전으로 버전 관리하기를 참조하십시오.

  1. 필요한 패키지를 설치합니다. sudo aptitude install enscript libapache2-mod-python python-docutils trac db4.3-util libapache2-svn subversion-tools
  2. SVN을 위한 가상 호스트 디렉토리를 생성합니다. 서브버전 인스턴스가 웹 루트 디렉토리의 디렉토리를 혼잡하게 만들지 않도록 /var/www 대신 /var/local/svn을 사용하겠습니다. sudo mkdir -p /var/local/svn/svn.example.com
  3. 개발 그룹을 만들고 웹 사용자를 추가합니다. sudo addgroup example; sudo adduser www-data example
  4. 개발 그룹에 사용자들을 추가합니다. 이들은 저장소에 접근할 필요가 있는 사람들입니다. sudo adduser username1 example
    sudo adduser username2 example
    sudo adduser username3 example
  5. 적절한 권한을 설정합니다. sudo chmod 2770 /var/local/svn/svn.example.com
  6. 저장소를 설정합니다. sudo svnadmin create /var/local/svn/svn.example.com
  7. 현재 비밀번호 파일을 지웁니다. 기본적으로 svnserve 프로토콜을 위한 것이지만, 우리는 HTTPS(또는 단순히 HTTP)를 사용할 것입니다. 이 과정에서 나중에 이 파일에 사용자를 추가할 것입니다. sudo rm /var/local/svn/svn.example.com/conf/passwd
    sudo touch /var/local/svn/svn.example.com/conf/passwd
  8. 그룹이 저장소에 쓸 수 있도록 허용합니다. sudo chmod -R g+w /var/local/svn/svn.example.com
  9. 적절한 파일 소유권을 설정합니다. sudo chown -R www-data:example /var/local/svn/svn.example.com
  10. 저장소 접근 권한을 설정합니다. 이를 수행하는 방법에 대한 정보는 서브버전으로 버전 관리하기의 경로 기반 권한 부여 섹션에서 찾을 수 있습니다. sudo vi /var/local/svn/svn.example.com/conf/authz
  11. 로그 파일을 위한 디렉토리를 생성합니다. sudo mkdir /var/log/apache2/svn.example.com
  12. 사이트를 로그 회전 목록에 추가합니다. sudo vi /etc/logrotate.d/apache2
  13. 가상 호스트를 구성합니다… sudo vi /etc/apache2/sites-available/svn.example.com… 다음 데이터를 사용합니다. SSL에 신경 쓰지 않는다면 SSL 옵션을 무시하고 포트 80에서 실행할 수 있습니다.
    
    ServerName svn.example.com
    
    DAV svn
    AuthType Basic
    AuthName "svn.example.com"
    AuthUserFile /var/local/svn/svn.example.com/conf/passwd
    AuthzSVNAccessFile /var/local/svn/svn.example.com/conf/authz
    SVNPath /var/local/svn/svn.example.com
    Require valid-user
    
    CustomLog /var/log/apache2/svn.example.com/access.log combined
    ErrorLog /var/log/apache2/svn.example.com/error.log
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    # 실제(자체 서명되지 않은) 인증서가 있을 때 추가합니다.
    #  SSLCertificateKeyFile /etc/apache2/ssl/server.key
    
    
    ServerName svn.example.com
    Redirect / https://svn.example.com/
    
    참고: /etc/apache2/mods-enabled/dav_svn.conf
  14. 서브버전 가상 호스트를 활성화합니다. sudo a2ensite svn.example.com
  15. 사용자/비밀번호 조합을 생성합니다. htpasswd /var/local/svn/svn.example.com/conf/passwd username
  16. 웹 서버를 재시작합니다. sudo /etc/init.d/apache2 restart
  17. 사용자가 로컬에서 작업할 경우 svnwrap을 설정합니다. (자세한 내용은 매뉴얼 페이지를 참조하십시오.) sudo ln -s /usr/bin/svnwrap /usr/local/bin/svn

트랙 설정하기

  1. 웹 디렉토리를 생성합니다. 웹 루트를 혼잡하게 만들지 않기 위해 /var/www 대신 /var/local/trac을 사용하겠습니다. sudo mkdir -p /var/local/trac/trac.example.com
  2. 적절한 권한을 설정합니다. sudo chmod 2770 /var/local/trac/trac.example.com
  3. 트랙 인스턴스를 생성합니다. sudo trac-admin /var/local/trac/trac.example.com initenv
  4. 웹 디렉토리에 적절한 소유권을 설정합니다. sudo chown -R www-data:example /var/local/trac/trac.example.com
  5. 그룹이 저장소에 쓸 수 있도록 허용합니다. sudo chmod -R g+w /var/local/trac/trac.example.com
  6. 구성합니다. sudo vi /var/local/trac/trac.example.com/conf/trac.ini
  7. 로그 파일을 위한 디렉토리를 생성합니다. sudo mkdir /var/log/apache2/trac.example.com
  8. 사이트를 로그 회전 목록에 추가합니다. sudo vi /etc/logrotate.d/apache2
  9. 가상 호스트를 구성합니다… sudo vi /etc/apache2/sites-available/trac.example.com… 다음 데이터를 사용합니다. SSL에 신경 쓰지 않는다면 SSL 옵션을 건너뛰고 포트 80에서 실행할 수 있습니다.
    # 트랙 구성
    
    ServerName trac.example.com
    Redirect / https://trac.example.com/
    
    
    ServerName trac.example.com
    DocumentRoot /var/local/trac/trac.example.com/
    Alias /trac/ /usr/share/trac/htdocs
    
       Options Indexes MultiViews
       AllowOverride None
       Order allow,deny
       Allow from all
    
    
       SetHandler mod_python
       PythonHandler trac.web.modpython_frontend
       PythonInterpreter main_interpreter
       PythonOption TracEnv /var/local/trac/trac.example.com/
       PythonOption TracUriRoot /
       AuthType Basic
       AuthName "trac.example.com"
       # SVN 비밀번호 파일을 사용합니다.
       AuthUserFile /var/local/svn/svn.example.com/conf/passwd
       Require valid-user
    
    CustomLog /var/log/apache2/trac.example.com/access.log combined
    ErrorLog /var/log/apache2/trac.example.com/error.log
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    # 실제(자체 서명되지 않은) 인증서가 있을 때 추가합니다.
    #  SSLCertificateKeyFile /etc/apache2/ssl/server.key
    
    참고: http://trac.edgewall.org/wiki/TracOnUbuntu
  10. 트랙 가상 호스트를 활성화합니다. sudo a2ensite trac.example.com
  11. 트랙 권한을 구성합니다. 관리 콘솔에 들어가면 “help permission” 명령을 실행하여 이를 수행하는 방법에 대한 정보를 확인하십시오. 이는 일부 설정이 기본적으로 허용적이기 때문에 중요합니다. 또한, 새 설치와 함께 제공되는 위키 페이지인 TracPermissions를 참조하십시오. trac-admin /var/local/trac/trac.example.com
  12. 웹 서버를 재시작합니다. sudo /etc/init.d/apache2 restart

마지막으로 할 일은 도메인의 DNS 구성에 서브도메인 “svn”과 “trac”를 추가하는 것입니다. 이 작업이 완료되면 서브버전과 트랙이 서버 환경에 통합되어 웹에서 접근할 수 있게 됩니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.