一、SVN 安装配置
1、更新系统:
apt-get update
apt-get upgrade -y
2、安装相关软件:
apt-get install apache2 subversion libapache2-svn
安装完subversion后,ubuntu会自动配置apache加载subversion模块,若未自动加载可运行下面命令加载:
sudo a2enmod dav_svn
3、环境准备:用户、组、文件夹的创建和赋权
#创建仓库文件夹
mkdir -p /srv/svn/repos
#将www-data用户加入subversion组
groupadd subversion
gpasswd -a www-data subversion
#赋于文件仓库的访问权限
chown -R www-data:subversion /srv/svn/repos
chmod -R g+rws /srv/svn/repos
#创建密码文件和访问控制文件并赋权(这两个文件由SVNManager维护)
touch /srv/svn/passwdfile /srv/svn/accessfile
chown www-data:subversion /srv/svn/passwdfile /srv/svn/accessfile
a2enmod dav_svn authz_svn
4、在apache2中配置SVN:
vi /etc/apache2/mods-available/dav_svn.conf,文件内容如下:
<Location /svn>
DAV svn
SVNParentPath /srv/svn/repos
AuthType Basic
AuthName "SVN Repositories"
AuthUserFile /srv/svn/passwdfile
# <IfModule mod_authz_svn.c>
AuthzSVNAccessFile /srv/svn/accessfile
# </IfModule>
# <LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
# </LimitExcept>
</Location>
5、SVN配置完毕,重启服务:
service apache2 restart
二、SVNManager安装配置
1、安装mysql,root密码:root1234
apt-get install mysql-server mysql-client
2、创建SVNManager数据库
mysql -u root -proot1234
mysql> CREATE DATABASE svnmanager;
mysql> GRANT all privileges on svnmanager.* to 'svnmanager'@'localhost' identified by 'root1234';
mysql> FLUSH PRIVILEGES;
mysql> exit
3、安装PHP_5
apt-get install php5 php5-mysql php5-sqlite php-pear
4、安装Pear模块:VersionControl_SVN
pear install VersionControl_SVN-0.3.4
若不指定版本安装:pear install -f -o VersionControl_SVN,在页面进行赋权操作的时候有问题,可能是软件bug。
5、下载SVNManager
wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.09.tar.gz
6、部署SVNManager:
tar zxvf svnmanager-1.09.tar.gz -C /var/www
ln -s /var/www/svnmanager-1.09 /var/www/svnmanager
7、配置SVNManager
mkdir -p /srv/svn/svnconfig
chown -R www-data:subversion /srv/svn
chmod -R g+rws /srv/svn
8、修改配置文件:
cp /var/www/svnmanager/config.php.linux /var/www/svnmanager/config.php
vi /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 /srv/svn/svnconfig";
$svn_config_dir = "/srv/svn/svnconfig";
$svn_repos_loc = "/srv/svn/repos";
$svn_passwd_file = "/srv/svn/passwdfile";
$svn_access_file = "/srv/svn/accessfile";
$smtp_server = "smtp.163.com";
$dsn = "mysqli://root:root1234@localhost/svnmanager"
$admin_name = "admin";
$admin_temp_password = "admin";
9、使SVNManager的web页面支持中文路径:
vi /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);
10、SVNManager配置完毕,重启服务:
service apache2 restart
11、进行一次访问:http://svn-ip/svnmanager/ 会提示创建SVNManager数据表,刷新页面,出现登录页面。
三、配置及使用信息:
1)SVNManager登陆地址:http://svn-ip/svnmanager/
2)SVNManager初始管理员帐号和密码:admin/admin(创建一个管理员账户后该帐号失效)
3)使用管理员帐号登录SVNManager后进行用户、组、仓库的创建并进行赋权操作,
svnmanager使用教程参见:
http://wenku.baidu.com/view/7ca281e2524de518964b7d7c.html
SVN管理员或许需要如下信息:
1)SVN库的存放位置:/srv/svn/repos
2)SVN用户和权限控制文件:/srv/svn/passwdfile /srv/svn/accessfile
3)Apache中SVN的配置文件:/etc/apache2/mods-available/dav_svn.conf
4)缺省SVNManager使用的MySQL的root密码:root1234