资讯专栏INFORMATION COLUMN

CentOS 下 Apache + Subversion 实现版本控制

孙淑建 / 2500人阅读

摘要:首先要说明一点的是并不是必须安装的如果你只用在下本地实现版本控制的话否则你至少要选择一种服务器与配合使用才能实现远程版本控制比较推崇使用好处实在太多了比如多种身份验证可配置使用加密等高级功能当然也存在一些缺点比如本身是无状态连接的结果是导致

首先要说明一点的是Apache并不是必须安装的,如果你只用在CentOS下本地实现版本控制的话,否则你至少要选择一种服务器与SNV配合使用才能实现远程版本控制,比较推崇使用Apache,好处实在太多了,比如多种身份验证,可配置使用SSI加密等高级功能,当然,Apache也存在一些缺点,比如http本身是无状态连接的,结果是导致连接速度相对要慢一点,不过本人在实际使用过程中感觉,只要你不是发烧极别的灰骨,基本可以忽略,呵呵.
CentOS官方有资料专门介绍如何配置SVN的,不过官方都是用yum方式安装的,确实YUM有时候确实好用,不过对于初学者还是推荐自编译安装,在这一过程中出现的问题自已试着解决,其实是一件非常有效的学习方法,也是非常有趣的一件事.
CentOS官方资料: http://wiki.centos.org/HowTos...
安装步骤:
1、安装Apache
2、安装subversion
3、创建版本库
Apache安装(原转载的文章感觉这一块讲的不是很好,就加上了这一块.):

1、下载:CentOS Apache

[root@localhost src]# chmod +x httpd-2.2.8.tar.gz
[root@localhost src]# tar -zxvf httpd-2.2.8.tar.gz

2)CentOS Apache设置编译器的编译参数

[root@localhost src]# cd httpd-2.2.8
[root@localhost httpd-2.2.8]# ./configure –prefix=/usr/local/apache2 –enable-module=so

3)CentOS Apache编译和安装:

[root@localhost httpd-2.2.8]# make&&make install
如果没有错误的话,那么Apache就已经安装在/usr/local/apache2目录中了

4、CentOS Apache启动服务:

[root@localhost httpd-2.2.8]# /usr/local/apache2/bin/apachectl start

5、CentOS Apache确定启动状:

[root@localhost apache2]# netstat -utl
tcp 0 0 *:http *:* LISTEN
看到上面这行就表示你的Apache已经启动。 用浏览器访问,看到It works!,说明apache已经安装成功了,恭喜您!

一、准备好安装包:

apr-1.3.6.tar.gz   下载地址:http://apr.apache.org/
apr-util-1.3.8.tar.gz
subversion-1.6.3.tar.gz 下载地址: http://subversion.tigris.org/
subversion-deps-1.6.3.tar.gz
httpd-2.2.9.tar.gz 下载地址:http://httpd.apache.org/

注意:apach的版本 与 subversion版本的兼容问题,官网都有介绍
二、开始安装:把以上安装包上传至/usr/local目录,cd /usr/local 进入该目录
1、安装apr

  #解压包
  tar zxvf apr-1.3.6.tar.gz 
  cd apr-1.3.6
  ./configure
  make && make install

2、安装apr-util

  tar zxvf apr-util-1.3.8.tar.gz
  cd apr-util-1.3.8
  ./configure --with-apr=/usr/local/apr
  make && make install

3、安装 apache

  tar zxvf httpd-2.2.9.tar.gz
  cd httpd-2.2.9
  ./configure --prefix=/usr/local/apache2.2.9 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config #--prefix表示把apache安装在指定目录
  make && make install

4、安装subversion

  tar zxvf subversion-1.6.3.tar.gz
  tar zxvf subversion-deps-1.6.3.tar.gz
  cd subversion-1.6.3
  ./configure --prefix=/opt/svn --with-apxs=/usr/local/apache2.2.9/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
  make && make install

至此,安装基本完毕,再配置下就可以使用了
注意:因为这些安装包需要gcc编译,所以要确保linux上装有gcc程序,否则是没办法进行安装的
三、在apache中配置SVN

  vi /usr/local/apache2.2.9/conf/httpd.conf

如果你看到如下两句,说明安装是成功的

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

如果有下面一句就用#注释掉

  #LoadModule foo_module modules/mod_foo.so

定义apache访问svn配置:

  
          DAV svn
  #      SVNPath /opt/svndata
          SVNParentPath /opt/svndata
          AuthzSVNAccessFile /opt/svn/conf/authz.conf
          AuthType Basic
          AuthName "Subversion repository"
          AuthUserFile /opt/svn/conf/passwd.conf
          Require valid-user
  

四、配置svn
建立svn版本库目录

  mkdir -p /opt/svndata/repos #可以多建版本库目录

建立svn版本库

  svnadmin create /opt/svndata/repos
  mkdir -p /opt/svndata/repos #可以多建版本库

建立本地访问控制文件

  /usr/local/apache2.2.9/bin/htpasswd -c /opt/svn/conf/passwd.conf username

然后输入密码即可,默认是MD5加密的

  /usr/local/apache2.2.9/bin/htpasswd /opt/svn/conf/passwd.conf username1 #追加用户

建立本地项目控制文件

  touch /opt/svn/conf/authz.conf

本例authz.conf内容为:

  [groups]
  #=,
  admin=username
  #[:projectName/directory]
  #@=
  #=
  [/]
  @admin = rw      #指定用户组成员可以读写根目录所有应用
  [repos:/abc/aaa]
  username1= rw      #指定用户username1可以读写:/abc/aaa目录的文件

至此,整个安装过程完成了!
五、测试连接
启动apache

  /usr/local/apache2.2.9/bin/apachectl start

打开浏览器,输入http://192.168.1.107/svn/repos #本例服务器ip是192.168.1.107
使用刚才创建的权限用户名与密码登录即可访问
注意:在你上传文件的时候可能会有如下权限不足的提示

  Permission denied
  svn: Commit failed (details follow):
  svn: Can"t create directory "/opt/svndata/repos/db/transactions/0-1.txn": Permission denied
 

这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者
本例apache属于daemon拥有者,而svn仓库属于svn拥有者
解决方法:

  chown -R daemon /opt/svndata/repos
  chmod -R 755 /opt/svndata/repos
   

重启下apache:

  
   /usr/local/apache2.2.9/bin/apachectl stop
   /usr/local/apache2.2.9/bin/apachectl start
  

“Could not open the requested SVN filesystem” errorcode=2
如果出现这个错误你就得看一下Apache的httpd.conf文件里面相关版本库路径是不是正确,请确保使用的是绝对路径.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68226.html

相关文章

  • CentOS 安装 Subversion

    摘要:安装依赖命令貌似只要安装时,就会把和安装上。它会创建文件并用将口令加密。利用所包含的工具,这是很容易的。这样的话,版本库的设置便大工告成了。 安装依赖 命令:yum install mod_dav_svn subversion 貌似只要安装mod_dav_svn时,就会把subversion和Apache安装上。 Subversions Apache 配置 命令如下: [ro...

    LMou 评论0 收藏0
  • CentOS7.3搭建Apache+PHP7+web SVN+MariaDB Web服务器(2018

    摘要:免责声明本教程仅以个人经验撰写,未必适合所有系统环境。如在使用本教程途中,出现无法挽救的损失如数据丢失等,本人概不负责。本文最终服务器环境配置下面开始进入教程吧。教程结束本次教程本人在下搭建成功。 注意:本教程使用干净的 CentOS 7进行安装,如果您已安装其他环境或软件,涉及到内核升级,请您妥善备份,可能导致您已安装的软件不兼容或出现其他问题。 免责声明:本教程仅以个人经验撰写,...

    leo108 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<