在 FreeBSD 下架設 Subversion
时间:2010-10-14 来源:Boon
紀錄於 FreeBSD 下架設 SVN 的過程...... 最近怎麼都在架 SVN... XD
詳細的解釋也懶得打了, 有興趣想了解深入點的, 可以看之前的文章, 本篇還是直接從頭裝到完就好了... XD
首先, 先來裝 package 吧~~~ :)
安裝 Apache cd /usr/ports/www/apache22 make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install clean # SVN 會使用到 bdb4, 所以 apache 在此要一起裝起來 安裝 Subversion cd /usr/ports/devel/subversion make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN -DWITH_APACHE2_APR install clean 讓 svn 支援 apache22 的 DAV_MODULES 設定 SVN 基本環境目錄 mkdir -p /home/www/svn/repository/PROJECT_NAME # 路徑自行決定後再更改即可. mkdir -p /home/www/etc # 來放 svn 所需要的設定檔 svnadmin create /home/www/svn/repository/PROJECT_NAME # svn 初始化 chown -R www:www /home/www/svn/repository/PROJECT_NAME chown -R www:www /home/www/etc 設定 Apache2 在 /usr/local/etc/apache22/httpd.conf 應該有這三行
LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so 如果有apache restart 有出現 "[warn] module dav_module is already loaded, skipping" 的 WARN, 就把 dav_module 註解掉, 如下:
# LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so 新增 svn.conf 註: 如果要設 Virtual Host 就直接跳過這個. vim/usr/local/etc/apache22/Includes/svn.conf # 設定 apache DAV <Location /svn> DAV svn SVNPath /home/www/svn/repository AuthType Basic AuthName "Svn repository" AuthUserFile /home/www/etc/svn-auth-file AuthzSVNAccessFile /home/www/etc/svn-access-file # 如果不加這個, 預設大家都可以進去存取 Require valid-user </Location> 設定 Virtual Host 註: 要設定這個, 就不用設上述的 svn.conf vim /usr/local/etc/apache2/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot /home/wwwadm/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 SVNParentPath /home/wwwadm/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> 建立帳號 htpasswd -c /etc/svn-auth-file USER1 # 建立存取帳號 htpasswd /etc/svn-auth-file USER2 # 第二個以後的帳號記得不要 -c 建立 SVN 權限控制檔案 vim /etc/svn-access-file [/] * =
[PROJECT_NAME:/] USER1 = rw USER2 = r 設定開機自動啟動 Apache vim /etc/rc.conf apache22_enable="YES" # 增加這一行 測試 cd /tmp/;mkdir PROJECT_NAME; cd PROJECT_NAME; mkdir trunk branches tags; cd /tmp/; svn import PROJECT_NAME http://DOMAIN_NAME/svn/PROJECT_NAME http://DOMAIN_NAME/svn/ 應該就可以看到 PROJECT_NAME 了 看到就可以開始做 svn checkout http://DOMAIN_NAME/svn/PROJECT_NAME, commit ... 等動作~~ 設 Virutal Host 的就可以 svn co http://VIRTUAL_HOSTNAME/svn/PROJECT_NAME
詳細的解釋也懶得打了, 有興趣想了解深入點的, 可以看之前的文章, 本篇還是直接從頭裝到完就好了... XD
首先, 先來裝 package 吧~~~ :)
安裝 Apache cd /usr/ports/www/apache22 make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install clean # SVN 會使用到 bdb4, 所以 apache 在此要一起裝起來 安裝 Subversion cd /usr/ports/devel/subversion make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN -DWITH_APACHE2_APR install clean 讓 svn 支援 apache22 的 DAV_MODULES 設定 SVN 基本環境目錄 mkdir -p /home/www/svn/repository/PROJECT_NAME # 路徑自行決定後再更改即可. mkdir -p /home/www/etc # 來放 svn 所需要的設定檔 svnadmin create /home/www/svn/repository/PROJECT_NAME # svn 初始化 chown -R www:www /home/www/svn/repository/PROJECT_NAME chown -R www:www /home/www/etc 設定 Apache2 在 /usr/local/etc/apache22/httpd.conf 應該有這三行
LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so 如果有apache restart 有出現 "[warn] module dav_module is already loaded, skipping" 的 WARN, 就把 dav_module 註解掉, 如下:
# LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so 新增 svn.conf 註: 如果要設 Virtual Host 就直接跳過這個. vim/usr/local/etc/apache22/Includes/svn.conf # 設定 apache DAV <Location /svn> DAV svn SVNPath /home/www/svn/repository AuthType Basic AuthName "Svn repository" AuthUserFile /home/www/etc/svn-auth-file AuthzSVNAccessFile /home/www/etc/svn-access-file # 如果不加這個, 預設大家都可以進去存取 Require valid-user </Location> 設定 Virtual Host 註: 要設定這個, 就不用設上述的 svn.conf vim /usr/local/etc/apache2/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot /home/wwwadm/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 SVNParentPath /home/wwwadm/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> 建立帳號 htpasswd -c /etc/svn-auth-file USER1 # 建立存取帳號 htpasswd /etc/svn-auth-file USER2 # 第二個以後的帳號記得不要 -c 建立 SVN 權限控制檔案 vim /etc/svn-access-file [/] * =
[PROJECT_NAME:/] USER1 = rw USER2 = r 設定開機自動啟動 Apache vim /etc/rc.conf apache22_enable="YES" # 增加這一行 測試 cd /tmp/;mkdir PROJECT_NAME; cd PROJECT_NAME; mkdir trunk branches tags; cd /tmp/; svn import PROJECT_NAME http://DOMAIN_NAME/svn/PROJECT_NAME http://DOMAIN_NAME/svn/ 應該就可以看到 PROJECT_NAME 了 看到就可以開始做 svn checkout http://DOMAIN_NAME/svn/PROJECT_NAME, commit ... 等動作~~ 設 Virutal Host 的就可以 svn co http://VIRTUAL_HOSTNAME/svn/PROJECT_NAME
相关阅读 更多 +