前言:
需要模組:libapache2-mod-auth-pam, libapache2-mod-auth-sys-group, libapache2-svn, subversion
以上模組皆可使用
sudo aptitude
或是
sudo apt-get install [package]
取得
Subversion部分:
- 安裝
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
- 建立欲存取的 Group:假設名稱為 dev
$ sudo groupadd dev
- 加入欲存取的帳號 & www-data (Apache 帳號) 到 Group中
$ sudo adduser www-data dev
$ sudo adduser [your account] dev
- 建立 Subversion Repository:一般常用位置 /usr/local/svn or /home/svn,以下範例假設放在 /home/svn 底下,並且 Project 名稱為“myproject”
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo svnadmin create /home/svn/myproject
$ sudo chown -R root:dev myproject
$ sudo chmod -R g+rws myproject
設定SSL:
- 啟用模組
$ sudo a2enmod ssl
- 建立 SSL Certificate
$ sudo apache2-ssl-certificate -days 365
- 啟用一個 SSL 用的 Vertual Host
- 先複製一份 default site 的設定檔
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
- 修改 default,加上
NameVirtualHost *:80
<VirtualHost *:80>
- 修改 ssl,加上
NameVirtualHost *:443
<VirtualHost /:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
- 儲存後,啟動 site
$ sudo a2ensite ssl
- 修改 /etc/apache2/ports.conf 加入
Listen 443
- 重新啟動 Apache
$ sudo /etc/init.d/apache2 restart
設定 Apache/SVN/PAM:
- 啟用模組
$ sudo a2enmod dav_svn
$ sudo a2enmod auth_pam
$ sudo a2enmod auth_sys_group
- 修改 ssl,加上
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "Subversion myproject Realm" #可自由更改
require group dev
</Location>
- 將 www-data 加入 shadow Gruop
$ sudo adduser www-data shadow
- 重新啟動 Apache
$ sudo /etc/init.d/apache2 restart
如此一來設定完成,即可使用如 TortoiseSVN 之類的 GUI 工具 Check Out myproject 了。
參考網站:
Apache2/SSL+Subversion+PAM认证服务器配置
Ubuntu SubVersion服务安装设置
Ubuntu 5.10 下Apache2 SSL 的配置方法