首先要说明一点的是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配置:

<Location /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
  </Location>

四、配置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]
  #<groupname1>=<username1>,<username2>
  admin=username
  #[<versionLib>:projectName/directory]
  #@<groupsname>=<authorities>
  #<username>=<authorities>
  [/]
  @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文件里面相关版本库路径是不是正确,请确保使用的是绝对路径.

CentOS 下 Apache + Subversion 实现版本控制的更多相关文章

  1. ios – 在Swift中获取Cocoa Touch Framework项目版本字符串

    有谁知道这是否是我的项目设置中的缺陷,Xcode中的一个错误,或者是否有一种方法可以将Swift中的框架版本作为String或数组获取,这样我可以提供比major.minor更精细的版本控制?

  2. ios – 在XCode提交期间,exclaimation point符号对文件意味着什么?

    当从XCode中提交对SVN存储库的更改时,某些文件具有“!”右栏中的符号.这个符号是什么意思,我应该用这些文件做什么?

  3. 如何在xCode 9.0中设置SVN存储库

    使用xCode9.0,我遇到了SVN设置问题.我找不到任何添加SVN存储库的选项适用于早期版本的xCode.在源代码管理中,我到处都是GIT.我正在使用SVN很长一段时间,并正在使用早期版本的xCode但是这不适用于xCode9.0.解决方法如果你有旧版本的xcode,并且上面的升级方法不能正常工作或无法使用,那么终端可以用来升级.>前往终点站>使用cd命令将目录更改为项目文件夹库>要验证您是否在

  4. ios – SVN忽略’.a’文件

    我正在尝试在我的XCode项目中添加一个’.a’文件但它被SVN忽略了,因此我无法将其添加到存储库中.任何线索可能是什么原因?解决方法是的,你必须手动完成.只需在控制台中导航到它并执行svnaddfile_name.a即可.

  5. iOS故事板 – 实践经验re:多个开发者?

    故事板似乎是处理iOS中多个视图控制器以及它们之间转换的优雅方式.但是,出于对多个开发人员对同一故事板文件中的视图控制器进行更改以及可能导致的合并冲突而发生的情况的考虑,我一直避免使用它们.在中等复杂度的生产应用程序中,有没有人有这方面的实际经验?您的评估是什么–在这方面是否为“黄金时间”准备好了故事板?

  6. ios – Xcode:错误 – &gt;构建失败 – &gt;请升级您的Subversion客户端以使用此工作副本

    我正在使用Xcode4.2.1.我有这个问题在iOS模拟器上运行现有的应用程序:我安装了Subversion服务器1.7.1,并且在客户端我升级到1.7.1.我做了一个svn升级然后我在Xcode中得到了这个错误.如果我在终端上重复svn升级,我收到消息无法升级’…’,因为它不是1.7之前的工作副本目录.那有什么不对?

  7. Xcode 4.5自动更改.xib文件

    由于我升级到Xcode4.5,我发现它会自动删除我访问的每个xib文件的一部分.这是一节:我几乎可以这样生活,但是当我再次访问该文件时,我发现还有更多的“自动”更改.他们变得更加多样,难以表征,所以我不会包括例子,除非我真的需要.我不明白这里发生了什么.我正在寻找两个答案之一:>有没有办法禁用这个?>为什么会发生这种情况,有没有办法强制Xcode将这些更改应用于所有xib文件,以便我可以做到这一点?

  8. Xcode 4和版本控制 – 但是哪一个?

    >使用Xcode集成版本控制,组织者,克隆,从xcode等提交.我的意思是完全或几乎被Xcode控制?>忽略Xcode让他认为没有版本控制,并在命令行自己做?>上述两个合并?Github是非常受欢迎和强大的,但你必须学习git,并学习很难.>Mercurial?看起来比较友善>还有什么?对有经验的人有一些反馈意见是无价的,所以我和许多其他人希望在面对VCS墙时可以选择自己的路径:-)非常感谢!!!.我建议一些git开头阅读:>Gitinfiveminutes>GitCommunityBook>TheThi

  9. IOs Cordova长按显示文本选择放大镜即使禁用文本选择,如何删除?

    是否有任何可能导致此问题的插件?任何帮助深表感谢.Cordova插件:>com.mbppower.camerapreview>cordova-plugin-statusbar>cordova-plugin-whitelist>离子插件键盘>org.apache.cordova.camera>org.apache.cordova.console>org.apache.cordova.device>org.apache.cordova.dialogs>org.apache.cordova.file>org.a

  10. Xcode和SVN:无法重命名我的类 – &gt;错误:155007(路径不是工作副本目录)

    我读了this.我也发现了类似的problem.但到目前为止还没有解决方案.解决方法我遇到了同样的问题,谷歌指导我这个问题,所以为迟到的’回答’道歉.无论如何,我正在研究eclipse3.5,macosx雪豹,你似乎也在使用macosx?关键是,macosx’hfs-filesystem大多数情况下设置不区分大小写,所以因为你只是想改变文件名的大小写,这可能是你的问题.我的解决方法是从FOO.h到Foo.h执行重命名:>FOO.h–>foobar.h中>FooBar.h–>foo.h中

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部