Subversion on apache22

安裝 Apache

  1. cd /usr/ports/www/apache22
  2. make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install clean
  3. # SVN 會使用到 bdb4, 所以 apache 在此要一起裝起來

安裝 Subversion

  1. cd /usr/ports/devel/subversion
  2. make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN -DWITH_APACHE2_APR install clean
  3. 讓 svn 支援 apache22 的 DAV_MODULES

設定 SVN 基本環境目錄

  1. mkdir -p /home/www/svn/repository/PROJECT_NAME # 路徑自行決定後再更改即可.
  2. mkdir -p /home/www/etc # 來放 svn 所需要的設定檔
  3. svnadmin create /home/www/svn/repository/PROJECT_NAME # svn 初始化
  4. chown -R www:www /home/www/svn/repository/PROJECT_NAME
  5. chown -R www:www /home/www/etc

設定 Apache2

LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so

<Directory />
# AllowOverride None
# Order deny,allow
# Deny from all
AllowOverride All
Order allow,deny
Allow from All
</Directory>

設定 virtual host and SVN

<VirtualHost *:80>
DocumentRoot /home/www/svn/repository
ServerName VIRTUAL_HOSTNAME
ErrorLog /var/log/httpd/svn.VIRTUAL_HOSTNAME-error_log
CustomLog /var/log/httpd/svn.VIRTUAL_HOSTNAME-access_log combined
<Location /svn>
DAV svn
# 注意, 這邊要用 SVNParentPath(不能放在 config 的後面…不然會一直出現error……………)
SVNParentPath /home/www/svn/repository
# Satisfy Any
AuthType Basic
AuthName “Svn repository”
AuthUserFile /home/www/etc/svn-auth-file
AuthzSVNAccessFile /home/www/etc/svn-access-file
Require valid-user
</Location>
</VirtualHost>

建立帳號

  1. htpasswd -c /home/www/etc/svn-auth-file USER1 # 建立存取帳號
  2. htpasswd /home/www/etc/svn-auth-file USER2 # 第二個以後的帳號記得不要 -c

建立 SVN 權限控制檔案

  • vim /home/www/etc/svn-access-file

[/]
* =

[PROJECT_NAME:/]
USER1 = rw
USER2 = r

設定開機自動啟動 Apache

apache22_enable=”YES”

應該就好了……

http://example.com/svn/PROJECT_NAME/

就可以看到svn 了………….

以上幾乎都是抄…Tsung 大的..
只做了少部份修改……………….

出處
http://plog.longwin.com.tw/my_note-unix/2007/07/18/freebsd_build_svn_2007

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料