SVNManager是一个基于Web的Subversion图形化管理工具。利用这个工具,用户可以远程创建配置库、删除和加载配置库、设置用户访问权限、邀请创建账号等功能。
下面说说在Ubuntu下SVN+SVNManager搭建过程。
1、准备
1.1、安装基础库
apt-get update
apt-get upgrade -y
apt-get install apache2 subversion apache2-utils libapache2-svn
apt-get install mysql-server mysql-client
apt-get install php5 php5-mysql php5-sqlite php-pear
pear install VersionControl_SVN-0.3.4
##使apche2模块生效
a2enmod dav_svn authz_svn
1.2、创建基础目录
#创建仓库主文件夹
mkdir -p /var/svn/repos
#创建仓库配置文件夹
mkdir -p /var/svn/svnconfig
#添加subversion组
groupadd subversion
#将www-data用户加入subversion组
gpasswd -a www-data subversion
#创建密码文件和访问控制文件并赋权(这两个文件由SVNManager维护)
touch /var/svn/passwdfile /var/svn/accessfile
#赋于文件仓库的访问权限
chown -R www-data:subversion /srv/svn
chmod -R g+rws /srv/svn
1.3、下载svnmanager
wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.09.tar.gz
tar -xvf svnmanager-1.09.tar.gz
mv svnmanager-1.09 /var/www/
2、配置
2.1、配置apache支持svn
vim /etc/apache2/mods-available/dav_svn.conf
#写入如下内容
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName "SVN Repositories"
AuthUserFile /var/svn/passwdfile
AuthzSVNAccessFile /var/svn/accessfile
Require valid-user
#使配置文件生效
ln -s /etc/apache2/mods-available/dav_svn.conf /etc/apache2/mods-enabled/dav_svn.conf
2.2、配置mysql
#创建svnmanager数据库并添加svnmanager用户和密码123456
mysql -u root -p
mysql> CREATE DATABASE svnmanager;
mysql> GRANT all privileges on svnmanager.* to 'svnmanager'@'localhost' identified by '123456';
mysql> FLUSH PRIVILEGES;
mysql> exit
2.3、配置svnmanager
cp /var/www/svnmanager/config.php.linux /var/www/svnmanager/config.php
vim /var/www/svnmanager/config.php
#修改config.php如下配置项:
$lang = "en_US.utf8";
$htpassword_cmd = "/usr/bin/htpasswd";
$svn_cmd = "/usr/bin/svn";
$svnadmin_cmd = "/usr/bin/svnadmin --config-dir /var/svn/svnconfig";
$svn_config_dir = "/var/svn/svnconfig";
$svn_repos_loc = "/var/svn/repos";
$svn_passwd_file = "/var/svn/passwdfile";
$svn_access_file = "/var/svn/accessfile";
$smtp_server = "smtp.163.com";
$dsn = "mysqli://svnmanager:123456@localhost/svnmanager"
$admin_name = "admin";
$admin_temp_password = "admin";
2.4、配置中文路径支持
#使SVNManager的web页面支持中文路径
vim /usr/share/php/VersionControl/SVN.php
#将下行
exec("{$this->prepend_cmd}$cmd 2>&1", $out, $ret_var);
#改为:
exec("LANG=zh_CN.UTF-8; {$this->prepend_cmd}$cmd 2>&1", $out, $ret_var);
2.5、使svnmanager可访问
vim /etc/apache2/sites-available/000-default.conf
#设置svnmanager根目录
DocumentRoot /var/www/svnmanager-1.09
2.6、重启apache
service apache2 restart
3、使用服务
3.1、访问首页
http://localhost
使用用户名admin,密码admin登录;
第一次访问时会提示没有数据库,然后自动帮你建表,再访问一次就可以正常访问初始界面
注意这是临时账户只能登录一次,所以在登录成功后第一件事就是添加一个管理员账户;如果忘记创建了那么你就需要清空数据库重新访问url
3.2、添加用户:
3.3、添加仓库
3.4、添加权限
3.5、访问仓库
http://localhost/svn/sendbox
注意:这里要添加一个svn路径前缀,后面加仓库名;这里仓库名必须全部小写,即使你创建的时候用到了大写
输入你有权限访问改仓库的账号和密码
Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里