Gentoo Linux下Subversion + Websvn安装配置说明

1、环境说明

# uname -a
Linux df53l 2.6.28-gentoo-r5 #1 SMP Tue Jun 16 18:58:24 CST 2009 i686 Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz GenuineIntel GNU/Linux

# emerge -pv apache
[ebuild   R   ] www-servers/apache-2.2.11  USE="ssl -debug -doc -ldap (-selinux) -sni -static -suexec -threads" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias

 

 # emerge -pv dev-util/subversion
[ebuild   R   ] dev-util/subversion-1.6.2  USE="apache2 dso nls perl python webdav-neon -bash-completion -berkdb -ctypes-python -debug -doc -emacs -extras -gnome-keyring -java -ruby -sasl -test -vim-syntax -webdav-serf"


# emerge -pv www-apps/websvn
[ebuild   R   ] www-apps/websvn-2.1.0  USE="vhosts -enscript"

 

2、安装软件

# echo "www-servers/apache ssl" >> /etc/portage/package.use

# echo "dev-lang/php apache2 pcre session spl xml mysql and either gd suhosin cgi for   ce-cgi-redirect" >> /etc/portage/package.use

# echo "dev-util/subversion -berkdb apache2 webdav-neon -nowebdav" >> /etc/portage/package.use

# echo "www-apps/websvn vhosts" >> /etc/portage/package.use

# echo "APACHE2_MPMS="prefork" >> /etc/make.conf

# emerge -av www-servers/apache dev-lang/php dev-util/subversion www-apps/websvn

 

 

 

3、配置Apache

# webapp-config -I -h websvn websvn 2.1.0

提示success后,检查 /var/www/websvn 目录是否生成。

#vim /etc/conf.d/apache2

在原来的APACHE2_OPTS后添加以下行

APACHE2_OPTS="$APACHE2_OPTS -D DEFAULT_VHOST -D SVN -D SVN_AUTHZ  -D DAV -D DAV_FS -D SSL -D SSL_DEFAULT_VHOST"


# vim /etc/apache2/httpd.conf

添加以下内容

#For Websvn
Listen 8099
<Directory /var/www/websvn>
    AddHandler php5-cgi .php
    Options +Indexes +ExecCGI +FollowSymLinks
    DirectoryIndex index.php
    AllowOverride Limit
</Directory>


# vim /etc/apache2/vhosts.d/websvn-vhost.conf

添加以下内容

NameVirtualHost *:8099
<VirtualHost *:8099>
  ServerName "myserver.mydomain.com"
  DocumentRoot "/var/www/websvn/htdocs"
      <Directory "/var/www/websvn/htdocs">
          AddHandler php5-cgi .php
          DirectoryIndex index.php
          AllowOverride All
          Order Allow,Deny
          Allow from All
       </Directory>
</VirtualHost>


# vim /etc/apache2/modules.d/php5-cgi.conf

添加以下内容

#handler for PHP 5 scripts
<IfDefine PHP5CGI>
    ScriptAlias /php5-cgi /usr/lib/php5/bin/php-cgi   
    Action php5-cgi /php5-cgi
    AddHandler php5-cgi .php5
</IfDefine>

 

4、配置Subversion

我将/var/svn目录软链接至/home/svn,以便存储空间管理

#mkdir /home/svn

#ln -s /home/svn /var

 

配置subversion

#emerge --config subversion

 

创建SVN用户组

# groupadd svnusers

 

创建SVN用户

#adduser -g svnusers -m svn

#passwd svn

 

修改目录访问权限

# chown -R svn:svnusers /var/svn/repos

# chown -R root:svnusers /var/svn/repos

# chmod -R g-w /var/svn/repos

# chmod -R g+rw /var/svn/repos/db

# chmod -R g+rw /var/svn/repos/locks

# gpasswd -a crob svnusers

 

5、配置Apache续,配置Websvn




# vim /etc/apache2/modules.d/47_mod_dav_svn.conf
若文件已存在,则删除原有内容,并改为以下内容
<IfDefine SVN>


<IfModule !mod_dav_svn.c>
LoadModule dav_svn_module modules/mod_dav_svn.so
</IfModule>
<Location /svn/repos>
DAV svn
SVNParentPath /var/svn
#SSLRequireSSL
AuthType Basic
AuthName "Super Duper SVN Repository"
AuthUserFile /var/svn/conf/svnusers
AuthzSVNAccessFile /var/svn/conf/svnpolicy
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
SVNIndexXSLT /svnindex.xsl
</Location>
<IfDefine SVN_AUTHZ>
<IfModule !mod_authz_svn.c>
LoadModule authz_svn_module modules/mod_authz_svn.$
</IfModule>
</IfDefine>
</IfDefine>
#vim /var/www/websvn/htdocs/include/config.php

添下以下内容

$config->parentPath('/var/svn/');


 

6、重启

# /etc/init.d/apache2 restart

 

 

7、Subversion Repository创建脚本

#vim setup-repos.sh

内容如下

#!/bin/bash

#Dependencies:

#app-shells/bash (bash)
#sys-apps/coreutils (mktemp,...)
#dev-util/subversion (svn,svnadmin)
if [ ! -d /var/svn/ ] ;then
echo "Cant find SNV-Directory at /var/svn"

exit 1
fi

if [ -z $1 ] ;then
echo "Usage: $0 <Repository-Name>"
exit 1
fi

if [ -d /var/svn/$1 ] ;then
echo "Repository /var/svn/$1 is already present"
exit 1
fi
echo "Creating Repository..."
svnadmin create /var/svn/$1
echo "Creating default directories..."
TDIR=`mktemp -d`
cd $TDIR
mkdir -p {trunk,tags,branches}
echo "Initial import..."
svn import -q -m "Initial Import" --non-interactive $TDIR file:///var/svn/$
echo "Fixing permissions..."
chown -R apache /var/svn/$1
echo "Cleaning up..."
rmdir $TDIR/{trunk,tags,branches}
rmdir $TDIR
echo "Done!"

# chmod +x ./setup-repos.sh

# ./setup-repos.sh test

 

至此我们建立了一个test专案,并能通过 http://127.0.0.1:8099访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值