CentOS6.5 yum安装 apache+svn安装配置 CentOS 6.5搭建Apache整合SVN 1.8.5服务器(多版本库权限配置)

    首页是关于svn的备份和还原

    比较快捷的方式:

            备份:svnadmin hotcopy /opt/svn/svntest/ /var/tmp/svntest_20120604 --clean-logs

            还原:直接把本分的文件拷贝的新服务器创建新的版本库直接替换就可以了,本文就是做这么个事。

回到主题:

     一、安装Apache和SVN

     在安装之前可以检查一下是否在操作系统安装时已经安装了这些软件,如果没有可以使用下面的命令安装:

     > yum install httpd

     运行该命令时,会列出要安装的文件和依赖的包,输入y,回车即可。

     > yum install mod_dav_svn subversion

     二、配置Apache

     首先使用service命令启动apache,

     >service apache start

     有时候会提示找不到service命令,可以使用/sbin/service 代替service。

     然后,要将httpd配置可以随系统启动而启动的服务,

     >chkconfig httpd on 

    三、配置SVN

    在配置完了Apache后,就要将二者结合起来了。如下操作:

    1. 新建一个仓库目录:

    > cd /var/www

    如果没有svn目录,新建一个

    > mkdir svn

    使用svnadmin创建一个代码库:

    > svnadmin create repos

    修改apache对repos的访问权限

    > chown apache.apache -R repos

    2. 修改subversion.conf配置文件

    > cd /etc/httpd/conf.d

  > vim subversion.conf

    subversion.conf的详细内容:

<Location /repos> 
DAV svn 
SVNParentPath /db/c 
AuthType Basic 
AuthName "Subversion repository" 
#密码存储文件 
AuthUserFile /db/c/back/conf/passwd
Require valid-user 
#用户访问目录的权限文件 
AuthzSVNAccessFile /db/c/back/conf/authz 
</Location> 

  

    3. 修改httpd.conf配置文件

    > cd /etc/httpd/conf

  > vim httpd.conf

增加三个so

LoadModule version_module modules/mod_version.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so 

四、完善SVN配置,增加用户控制

1、增加用户  

 htpasswd -c /db/c/back/conf/passwd username


2、
AuthzSVNAccessFile:authz中配置用户组和用户权限 

示例:

[groups]
admin = user1
leader = user2,user3

[/]
* = r
@admin = rw
@leader =rw
[/00-CMMI5级过程改进]
* =
user1 = rw

其它自己搜索解决吧

中途遇到一些问题:

1."The URI does not contain the name of a repository. [403, #190001]  "

原因是: subversion.conf中的SVNParentPath参数不应该包含svn库文件夹 

访问路径中则要加上svn库的文件夹,例如:http://192.168.32.128/repos/back

2、linux文件权限问题

     chown -R apache:apache passwd
      chmod -R 774 passwd

      svn提交的时候出现错误,

  提示/www/.svn权限不够,
  chown apache:apache /www/.svn
  chmod -R 775 /www/.svn

我没解决,用大招:关闭SELinux

查看SELinux状态:
1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:                 enabled
2、getenforce                 ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0                  ##设置SELinux 成为permissive模式
                              ##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

 

还有参考另外一文章:

http://www.tuicool.com/articles/ieQbuu


1. gcc gcc-c++安装 yum install gcc gcc-c++ 2.将Subversion和依赖安装包上传到CentOS服务器 3.依赖包的安装 tar zxvf apr-1.5.0.tar.gz tar zxvf libtool-2.2.4.tar.gz tar zxvf apr-util-1.5.3.tar.gz cd apr-1.5.0 ./configure --prefix=/usr/local/apr make make install cd libtool-2.2.4 ./configure --prefix=/usr/local/libtool make make install cd apr-util-1.5.3 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config make make install tar zxvf pcre-8.33.tar.gz tar zxvf httpd-2.4.7.tar.gz cd pcre-8.33 ./configure --prefix=/usr/local/pcre make make install cd httpd-2.4.7 ./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-dav-fs --enable-mnaintainet-mode --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre make make install tar xzvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=/usr/local/zlib make make install tar zxvf sqlite-autoconf-3080100.tar.gz tar zxvf subversion-1.8.5.tar.gz cd sqlite-autoconf-3080100 ./configure --prefix=/usr/local/sqlite make make install cd subversion-1.8.5 ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite --enable-maintainer-mode --with-zlib=/usr/local/zlib make make install ================================================================================== 4.Apache和SVN命令环境设置 vi /etc/profile PATH=/usr/local/apache/bin:$PATH PATH=/usr/local/subversion/bin:$PATH 退出VI source /etc/profile ================================================================================== 5.Apache配置 so文件复制 cp /usr/local/subversion/libexec/mod_authz_svn.so /usr/local/apache/modules/mod_authz_svn.so cp /usr/local/subversion/libexec/mod_dav_svn.so /usr/local/apache/modules/mod_dav_svn.so httpd.conf配置文件修改 vi /usr/local/apache/conf/httpd.conf LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so #svn <Location /svn> DAV svn SVNParentPath /usr/svn AuthType Basic AuthName "Subversion repository" #密码存储文件 AuthUserFile /usr/svn/auth.conf Require valid-user #用户访问目录的权限文件 AuthzSVNAccessFile /usr/svn/access.conf </Location> ================================================================================== 6.SVN配置 mkdir /usr/svn #创建版本库 svnadmin create /usr/svn/repos #添加用户并设置密码: htpasswd -c /usr/local/subversion/auth.conf test1 #输入两次密码 htpasswd /usr/local/subversion/auth.conf test2 #输入两次密码 #SVN用户访问目录权限配置文件 touch /usr/local/subversion/access.conf vi /usr/local/subversion/access.conf #用户组设置 [groups] g1 = test1 g2 = test2 #版本库1,组1为读写权限,组2为只读 [repos1:/] @g1 = rw @g2 = r * = #版本库1下的mysvn文件夹组1为只读权限 [repos1:/mysvn] @g1 = r #版本库2 [repos2:/] @g1 = rw @g2 = rw * = #版本库3 [repos3:/] @g1 = rw @g2 = rw #SVNSERVE.CONF配置文件修改 anon-access = none auth-access = write password-db = /usr/svn/auth.conf authz-db = /usr/svn/access.conf 为SVN版本库文件添加读写权限 chmod -R 777 /usr/svn 启动SVN svnserve -d -r /usr/svn --config-file /usr/svn/svnserve.conf 启动APACHE /usr/local/apache/bin/apachectl start ================================================================================== 7.防火墙配置 iptables -P OUTPUT ACCEPT #默认策略 iptables -P FORWARD DROP #默认策略 iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 3690 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建和相关的连接 iptables -P INPUT DROP #默认策略 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建和相关的连接 /etc/init.d/iptables save#保存iptables配置。 ================================================================================== 8.关闭selinux vi /etc/sysconfig/selinux SELINUX=DISABLED ================================================================================== 客户端访问: 版本库1:http://ip/svn/repos1 版本库2:http://ip/svn/repos2 版本库3:http://ip/svn/repos3