Oracle 系统管理 - Linux 系统 - Backtrack 5 - 安全 - Juniper 技术 - Cisco 技术 - 思科模拟器 - Cisco 认证 - Cisco ios 下载

您现在的位置是:Docker > Centos > Apache + SVN 架设教程

Apache + SVN 架设教程

时间:2018-06-04 14:04  来源:未知  阅读次数: 复制分享 我要评论

步骤:
  1. 安装SVN相关模块
  2. 配置SVN版本库
  3. 配置APACHE
  4. 简单测试

1.安装SVN相关模块
这里主要用到的是Subversion 以及Apache与SVN相关的模块(DAV_SVN)!
执行命令,安装:
Shell代码
  1. sudo apt-get install subversion libapache2-svn  

注意观察安装后的结果:
引用
Considering dependency dav for dav_svn:
Enabling module dav.
Enabling module dav_svn.
Run '/etc/init.d/apache2 restart' to activate new configuration!

如果看到这样的提示,那说明DAV_SVN模块已经成功安装,可以重启Apache看看是否正常启动:
Shell代码
  1. sudo /etc/init.d/apache2 restart  

或者,使用
Shell代码
  1. sudo service apache2 restart  

以我本机为例,正常启动了:
引用
zlex@localhost:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2                
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

当然,稍后你可能需要修改/etc/apache2/mods-available/dav_svn.conf文件,配置SVN版本库等。

2.配置SVN版本库
完成上述操作,只是为Apache获知SVN给出了一种途径,最关键的还是要配置SVN相关部分!
首先,我们要创建subversion组并把www-data作为subversion中的一员。因为,apache是通过www-data账户启动的,我们需要让它能够访问subversion组的文件!
Shell代码
  1. sudo addgroup subversion  
  2. sudo usermod -G subversion -a www-data  

然后,我们要配置版本库:
我们可以在/var/lib目录下构建一个svn目录,作为SVN版本库根目录:
Shell代码
  1. cd /var/lib  
  2. sudo mkdir svn  

假设我们要创建版本库zlex:
Shell代码
  1. cd svn  
  2. sudo svnadmin create zlex  

更改版本库所属用户、组:
Shell代码
  1. sudo chown -R root:subversion zlex  

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
Shell代码
  1. sudo chmod -R g+rws zlex  


试试
Shell代码
  1. svn co file://localhost/var/lib/svn/zlex  
,这时候应该可以访问了!

3.配置Apache
接下来,我们需要修改/etc/apache2/mods-available/dav_svn.conf文件,配置SVN版本库:
Shell代码
  1. sudo vi /etc/apache2/mods-available/dav_svn.conf  

征服 <wbr>Apache <wbr>+ <wbr>SVN
打开红框中的注释,
Conf代码
  1. dav_svn.conf Example Subversion/Apache configuration  
  2.  
  3. For details and further options see the Apache user manual and  
  4. the Subversion book.  
  5.  
  6. NOTE: for setup with multiple vhosts, you will want to do this  
  7. configuration in /etc/apache2/sites-available/*, not here.  
  8.   
  9.  ...   
  10. URL controls how the repository appears to the outside world.  
  11. In this example clients access the repository as http://hostname/svn/  
  12. Note, literal /svn should NOT exist in your document root.  
  13.   
  14.   
  15.   Uncomment this to enable the repository  
  16.   DAV svn  
  17.   
  18.   Set this to the path to your repository  
  19.   #SVNPath /var/lib/svn  
  20.   Alternatively, use SVNParentPath if you have multiple repositories under  
  21.   under single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).  
  22.   You need either SVNPath and SVNParentPath, but not both.  
  23.   SVNParentPath /var/lib/svn  
  24.   
  25.   Access control is done at 3 levels: (1Apache authentication, via  
  26.   any of several methods.  "Basic Auth" section is commented out  
  27.   below.  (2Apache  and also commented out  
  28.   below.  (3mod_authz_svn is svn-specific authorization module  
  29.   which offers fine-grained read/write access control for paths  
  30.   within repository.  (The first two layers are coarse-grained; you  
  31.   can only enable/disable access to an entire repository.)  Note that  
  32.   mod_authz_svn is noticeably slower than the other two layers, so if  
  33.   you don't need the fine-grained control, don'configure it.  
  34.   
  35.   Basic Authentication is repository-wide.  It is not secure unless  
  36.   you are using https.  See the 'htpasswd' command to create and  
  37.   manage the password file and the documentation for the  
  38.   'auth_basic' and 'authn_file' modules, which you will need for this  
  39.   (enable them with 'a2enmod').  
  40.   AuthType Basic  
  41.   AuthName "Subversion Repository"  
  42.   AuthUserFile /etc/apache2/dav_svn.passwd  
  43.   
  44.   To enable authorization via mod_authz_svn  
  45.   AuthzSVNAccessFile /etc/apache2/dav_svn.authz  
  46.   
  47.   The following three lines allow anonymous read, but make  
  48.   committers authenticate themselves.  It requires the 'authz_user'  
  49.   module (enable it with 'a2enmod').  
  50.    
  51.     Require valid-user  
  52.     
  53.   
  54.   

分述:
与成对儿出现!
DAV svn开启DAV模块支持!
SVNPath /var/lib/svnSVNParentPath /var/lib/svn选其一,不可同时出现!建议使用SVNParentPath,可以在SVN根目录下创建多个SVN版本库!
引用
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
定义了授权类型、并指定了密码文件(/etc/apache2/dav_svn.passwd)。
AuthzSVNAccessFile /etc/apache2/dav_svn.authz授权配置文件,规定了路径访问权限!
引用
#
   Require valid-user
#
建议只使用Require valid-user,打开/>注释,将允许匿名访问!

现在通过命令设置SVN账户:
Shell代码  
  1. sudo htpasswd -c /etc/apache2/dav_svn.passwd   

这里用到参数-c,是因为/etc/apache2/dav_svn.passwd文件不存在,如果文件存在,则无需该参数!否则,将覆盖掉原有密码文件!
形如:
引用
sudo htpasswd -c /etc/apache2/dav_svn.passwd snowolf
New password:
Re-type new password:
Updating password for user snowolf

可以追加多个账户!
引用
sudo htpasswd /etc/apache2/dav_svn.passwd zlex
New password:
Re-type new password:
Updating password for user zlex


现在,需要设置路径访问权限文件AuthzSVNAccessFile /etc/apache2/dav_svn.authz
我们先做一个默认的配置,当前这个文件还不存在:
Shell代码  
  1. sudo vi /etc/apache2/dav_svn.authz  

然后追加:
引用

[zlex:/]
* = r

这样,所有授权用户就都能够看到zlex项目了!
相关资讯