今まで、SVNリポジトリサーバを、apache+svnにnginxからリバースプロキシして利用していた。よくわからないけど、これがうまくいく時とうまくいかない時があり、もうしびれを切らして、nginxを省くことにした。
ついでに、今までVMWareFusion上でDebian6を運用していたが、VirtualBoxに変えるのとDebian7を使ってみることにした。VMWareFusionはサーバ用途には挙動が信用ならないと思っている。
ディスクからDebian7のインストール
この時点で、ホスト名には、公開用のホスト名を設定した。
apt-getがディスクから読み取りになっているので、コメントアウト
apt-getの取得先を変更する
#vi /etc/apt/sources.list deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 DVD Binary-1 20130615-23:06]/ wheezy contrib main ↓ # deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 DVD Binary-1 20130615-23:06]/ wheezy contrib main
固定IPの設定
#vi /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.XXX network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 192.168.1.XXX
どうも、最初"allow-hotplug eth0"となったいたが、
これだけでは起動時自動的に接続可能状態にまでならないので、
"auto eth0"とする必要がある。
Guest-Additionのインストール
VirtualBoxのツールのインストール。一応入れておく。
#apt-get update #apt-get upgrade #apt-get install build-essential module-assistant #/media/cdrom/GuestAdditionLinux.run
apache2のインストール
SubversionはSSL上で運用する。一応、PHPも入れておく。
#apt-get install apache2 #apt-get install libapache2-mod-php5 #apt-get install libapache2-svn libapache2-mod-encoding
80番を使えないようにする
#a2dissite default
ports.confで、80番をコメントアウト、443番を有効化する。
#vi /etc/apache2/ports.conf NameVirtualHost *:80 Listen 80 ↓ #NameVirtualHost *:80 #Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
443番を構築する。
通常ページは、"Options Indexes"を外しておく。
#vi /etc/apache2/sites-available/default-ssl <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin XXX@XXX.com DocumentRoot /var/www/html ServerName XXX.XXX.com LogLevel warn ErrorLog /var/log/apache2/svn.error.log ServerSignature Off # ---------------------------------------- # 通常のページ # ---------------------------------------- <Directory /var/www/html> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /var/www/cgi-bin <Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> # ---------------------------------------- # SVN # ---------------------------------------- <Location /svn/> DAV svn DAVMinTImeout 0 SVNParentPath /var/svn/ AuthType Basic AuthName "svn" AuthUserFile /etc/apache2/basic.passwd Require valid-user </Location> # ---------------------------------------- # SSL設定 # ---------------------------------------- CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/ssl.key </VirtualHost> </IfModule>
証明書については、以下を参照。/etc/apache2/ssl/に格納する。
ウチでは、Subversionのユーザは、apacheのBasic認証でOKにしている。
SVNディレクトリを引っ越しする
前のサーバから、リポジトリのダンプを出力する。
#svnadmin dump /var/svn/myrep > /home/user/myrep.svndump
このファイルを、新しいサーバに持ってきて、新しいサーバでリポジトリを作る。
#mkdir -p /var/svn/myrep #svnadmin create /var/svn/myrep #svnadmin load /var/svn/myrep < /home/user/myrep.svndump
Apacheにアクセス権限を与える。横着して、所有者にしている。
#chown -R www-data:www-data /var/svn/myrep
#service apache2 reload #service apache2 restart
テスト
$svn checkout https://XXX.XXX/svn/myrep