Ubuntu服务器端安装SVN和SVNManager

安装步骤:
1.安装Apache2
  sudo apt-get install apache2
     如果第一次没有安装成功,用 sudo apt-get update 进行更新,会提示你继续安装。
     安装好后:在apache2.conf 最后添加上 ServerName  192.168.0.111
     启动apache:
  1. // Apache  
  2. //Task: Start Apache 2 Server /启动apache服务  
  3. # /etc/init.d/apache2 start  
  4. //or  
  5. $ sudo /etc/init.d/apache2 start  
  6. //Task: Restart Apache 2 Server /重启apache服务  
  7. # /etc/init.d/apache2 restart  
  8. //or  
  9. $ sudo /etc/init.d/apache2 restart  
  10. //Task: Stop Apache 2 Server /停止apache服务  
  11. # /etc/init.d/apache2 stop  
  12. //or  
  13. $ sudo /etc/init.d/apache2 stop   
  14. // Mysql  
  15. /etc/init.d/mysql start  
  16. /etc/init.d/mysql stop  
  17. /etc/init.d/mysql restart  

启动时可能包窗口已被占用:用ps -aux | grep http命令查看   如果是用 sudo killall httpd //将httpd标志的进程全部杀死
  在浏览器中输入:http://192.168.0.111 如果出现apache成功页面,就表示安装成功了。

2.安装SVN
  sudo apt-get install subversion
sudo apt-get install libapache2-svn   //这是安装apache集成svn的文件。有了这一步可以避免自己手动的去配置apache。集成之后需要配置文件/etc/apache2/mods-available/dav_svn.conf
这里出现一个严重问题:后面svn下的目录会访问不到。原因是(有了这一步可以避免自己手动的去配置apache)apache2.conf文件没有把apache集成svn的对应配置文件加载进去。  解决办法:将配置文件中的内容直接写到httpd.conf文件里面。

3.配置SVN

  创建SVN版本库的父目录

  sudo mkdir /var/svn/repos

  创建控制用户访问权限的文件

  sudo touch /var/svn/repos/accessfile

  创建验证用户的密码文件

  sudo touch /var/svn/repos/passwdfile

  更改文件的读写权限

  sudo chmod 666 accessfile passwdfile

4.安装MySQL
  sudo apt-get install mysql-server mysql-client  //如果已经安装系统会提示你,如果没有安装那在安装过程中需要你设置mysql的root账号的密码

5.安装PHP
  sudo apt-get install php5 php5-mysql php5-sqlite php-pear

  sudo pear install -a VersionControl_SVN-0.3.1

6.安装svnmanager

  下载svnmanager:      

  wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.08.tar.gz

  解压并放置到/var/www/下

  tar zxvf svnmanager-1.08.tar.gz

  mv svnmanager-1.08  /var/www/svnmanager

7.为svnmanager创建数据库
mysql  –uroot –p

Mysql
>create database svnmanager;

Mysql
>grant all privileges on svnmanager.* to 'svnmanager'@'localhost' identified by '123456';

Mysql
>flush  privileges ;

Mysql
>exit

8.修改SVNManager的配置文件
  cp /var/.../svnmanager-1.08/config.php.linux /var/.../svnmanager1.08/config.php
修改下面的参数:
$htpassword_cmd = "/usr/bin/htpasswd";
密码生成程序位置
$svn_cmd = "/usr/bin/svn";
svn程序文件位置
$svnadmin_cmd = "/usr/bin/svnadmin";
svnadmin程序文件位置
$svn_repos_loc = "/var/svn/repos ";
svn版本库位置
$svn_passwd_file = "/var/svn/passwdfile";
密码认证文件位置
$svn_access_file = "/var/svn/accessfile";
权限文件位置
$smtp_server = "zzh.kt.com";
指定smtp服务器
$dsn = "mysql://svnmanager:123456@localhost/svn";
指定连接数据库
$admin_name = "admin";
默认
$admin_temp_password = "admin";
默认

$svn_config_dir  =  "/tmp"; 一定要设置 不然在版本库根目录不能创建svnmanager项目对应的目录


10.apache整合tomcat(同时安装apache和tomcat之后会出现一些访问的问题需要进行整合可以参照下面的文章整合)
主要参考文章:http://www.cnblogs.com/itech/archive/2009/08/18/1548723.html

11.常见问题:如果"增加"了用户但是,SVN连接的时候老是提示授权失败(密码错误)
请查看
/var/svn/repos/passwdfile 这个文件里面是否也已经有了记录。

12.常见问题:如果增加用户时,老是提示你“邮箱验证失败”请到目录/var/www/svnmanager/svnmanager-1.08/svnmanager/UserModule下删除新增和修改页面的邮箱验证。

13. 常见问题:apache2整合svn时,将配置信息 
<Location /svn>
    DAV svn
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/subversion/dav_svn.passwd
    AuthzSVNAccessFile /etc/subversion/dav_svn.authz
    Require valid-user
</Location>
添加到文件 /etc/apache2/mods-available/dav_svn.conf  中时可能没有生效,此时直接把配置添加到/etc/apache2/httpd.conf配置文件中。

14.常见问题:整合svn重启apache2的时候出现
Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
原因是没有导入auth模块。此时在/etc/apache2/mods-enabled/dav_svn.load中添加LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so 。

15.常见问题:上传SVN是提示413文件过大错误。
a.“413 Request Entity Too Large”是由web server发出来的,表示HTTP请求中的内容太大,我的Web Server是“Apache Http”,所以需要在httpd.conf中加入如下配置:
LimitXMLRequestBody 0
LimitRequestBody 0
b.在nginx的server配置中增加 client_max_body_size 100M;




发布了27 篇原创文章 · 获赞 4 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章