Ubuntu14.04下svn+svnmanager筹建

Ubuntu14.04下svn+svnmanager搭建
apt-get update
apt-get  -y upgrade
apt-get install apache2 subversion apache2-utils libapache2-svn -y
apt-get install mysql-server mysql-client
apt-get install php5 php5-mysql php5-sqlite php-pear
pear install VersionControl_SVN-0.3.4

创建仓库主文件夹
mkdir -p /svn/repos
创建仓库配置文件夹
mkdir -p /svn/svnconfig

添加subversion组
groupadd subversion
将www-data用户加入subversion组
gpasswd -a www-data subversion

创建密码文件和访问控制文件
touch /svn/passwdfile /svn/accessfile

赋予文件仓库访问权限
chown -R www-data:subversion /svn
chmod -R g+rwx /svn

下载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/

配置apache支持svn

vim /etc/apache2/mods-available/dav_svn.conf 
#写入如下内容 
<Location /svn>   
    DAV svn                                                           
    SVNParentPath /svn/repos   
    AuthType Basic                                                     
    AuthName "SVN Repositories"                                        
    AuthUserFile /svn/passwdfile   
    AuthzSVNAccessFile /svn/accessfile          
    Require valid-user       
</Location>

配置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  

配置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 /svn/svnconfig";   
   
$svn_config_dir  =  "/svn/svnconfig";   
$svn_repos_loc   =      "/svn/repos";   
$svn_passwd_file =      "/svn/passwdfile";   
$svn_access_file =      "/svn/accessfile";   
   
$smtp_server = "smtp.163.com";   
$dsn  = "mysqli://svnmanager:123456@localhost/svnmanager"   
 
$admin_name  =  "admin";   
$admin_temp_password    =   "admin";
 

vim /etc/apache2/mods-available/dav_svn.load  添加
#LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
        #LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
        LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
        LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so



 
配置中文路径支持
 
#使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);


配置svnmanager可访问


vim /etc/apache2/sites-available/000-default.conf 
#设置svnmanager根目录 
DocumentRoot /var/www/

重启apache

使用用户名admin,密码admin登录;
第一次访问时会提示没有数据库,然后自动帮你建表,再访问一次就可以正常访问初始界面

注意这是临时账户只能登录一次,所以在登录成功后第一件事就是添加一个管理员账户;如果忘记创建了那么你就需要清空数据库重新访问url

添加svn用户

  htpasswd /svn/passwdfile lz