`
altand
  • 浏览: 1469 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Ubuntu上配置SVN,Apache服务以及常见问题解决方法

 
阅读更多
话说网上资料很多,但是精品很少,步骤文档多为重复,而且有些文档还丢失步骤,导致别人安装出现各种问题。
 
    这篇Step-By-Step文档就是在花了很多时间网上查阅资料,当然主要是结合自己的安装流程编写的。本人也不是什么高手大牛,只是小菜一只,文档一为记录自己一些学习结果,二是也能给遇到相应问题的人一些帮助,文章中可能出现比较低级的说法错误和技术错误等等,希望看到的人能留言斧正,在下稽首了。
 
    如果这篇文档使你在读后照做能够完成SVN服务器的搭建,那么我的任务就算完成了。(大家知道我们古时造刀剑的工艺很是了得,为啥失传了,因为很多师傅留一手,结果技术越留越多,最后堙灭,甚是可惜,意思大家都懂得,技术只有分享讨论才有进步!当然特殊行业例外,那也有特殊手段来分享比较的,闭门造车哪有进步)
     闲言少叙,开始
本文安装环境
Ubuntu-Desktop:12.04
VirtualBox
1,安装相应的包
    sudo apt-get install subversion libapache2-svn apache2
   当然你可以源代码编译安装,向一切手工模式的人致敬,向一堆make麻烦拜拜。
2,创建仓库父级目录
sudo mkdir /svn
A,开始时候我是手工建的myproject文件夹,结果浏览器报错:can not open SVN filesystem错误,如果仔细看下apache错误日志的话发现是apache会寻找一个叫format的文件,由于手工建所以自然没有就报错了。B,如果你是在已有目录下建立版本库,则不需要这步,直接命令,示例:sudo svnadmin create /home/myproject)
3,编辑配置文件
sudo gedit /etc/apache2/mods-enabled/dav_svn.conf
(或者vim,vim看的习惯一些)
<Location /svn>
DAV svn
SVNPath /svn  
#SVNParentPath /svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd     
Require valid-user   
   </Location> (注意)
***重要提示:请把最后的</Location>前面注释符‘#’去掉,否则肯定报错的,这些是配对使用的。
    说明:(2-3行:开始由于这步没有理解清楚,后面接连出现无法读取SVN文件系统和403FORBIDDEN错误,按文档说明,这两个参数只设置其中一个,不要同时使用;如果使用SVNPath必须指定到准确详细仓库位置,示例:/svn/myproject,如果使用SVNParentPath则指定到父级目录就可以了,示例:/svn,并且下面可以定义多个仓库,如果想父级目录可见,则需在svn权限文件中配置目录权限)
  (4-6行:这三行是为了有基本的验证功能,请去掉‘#’注释号,并去掉行首空格,其实这里不去也行,但是有些配置文件对行首空格敏感,比如配置文件authz,还是统一为好。)  
3.2查看服务运行情况
   a,svn: svnserve --version 如果svn启动,则显示版本信息。  
   b,apache2: 浏览器地址:http://localhost
   运行正常结果为:It Works!
    (如果无法运行,请查看目录权限chmod,在CentOS下注意SELinux的问题,最好先关掉,当然如果你想用SELinux的话需要设置专门文件标签,好像是这么叫的。请查阅相关文档)
4,创建仓库使用者命令

我在一篇外文参考文档里面(参加参考文档4)看到的命令是 htpasswd2,但是在我的ubuntu 12.04中没有这个命令,可能是版本问题,希望牛人指点。

示例:
注意,htpasswd2可能没有这个命令,换成htpasswd
sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd air
返回:     New password:
Re-type new password:
        Adding password for user air
5,添加用户密码文件
sudo htpasswd -c /etc/subversion/dav_svn.passwd air  (当前系统用户名)
  sudo htpasswd  /etc/subversion/dav_svn.passwd www-data
(当前系统用户名)(ubuntu下的apache用户名和组名,centos系列为apache,而且服务名不同,ubuntu叫apache2,CentOS叫httpd) ***重要提示:这两条命令区别在于一个有-c,第一次创建用户密码需要建文件,所以加个-c参数。下面添加用户到这个文件就可以了,终端会提示你输入密码。
6,创建版本库  
sudo mkdir /svn (看前面第二部说明,已做过)   
正确建法:
sudo svnadmin create /svn/myproject
sudo chown -R www-data.subversion /svn/myproject
(一般是root组,一定改成subversion组)
chmod -R g+rws /svn/myproject
(这步比较重要,否则权限没有会报403错误)
7,导入库
sudo svn import -m myproject /home/air/test file:///svn/myproject
前面可能建版本库不对,所以这里报日志信息路径重复,删了重建版本库:
示例:
rm -rf /svn/mytest
mkdir -p /svn/myproject
svnadmin create /svn/myproject
创建版本库
chown -R www-data.subversion myproject/
(更改用户组,否则后面导入会报权限不足)
     导入
svn import -m test /home/air/test/ http://localhost/svn/myproject
命令返回:
p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: 无法打开共享对象文件: 没有那个文件或目录
认证领域: <http://localhost:80> Subversion Repository
“air”的密码:
增加           /home/air/test/winetricks
增加           /home/air/test/his
-----------------------------------------------------------------------
注意!  你的密码,对于认证域:
<http://localhost:80> Subversion Repository
只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)? no

提交后的版本为 1。

这里提示库文件缺失,可能我没有安装对应包,应该是加密用的。这里面svn提示可以配置文档一获得加密存盘,否过就是明文存在磁盘上,目前本文档不涉及此操作,欢迎大牛补充指正。
8,重启apache
sudo /etc/init.d/apache2 restart或者 service apache2 restart
(CentOS是httpd,话说这两系列Linux把人搞疯,艾,本来就有强劲对手Windows,自己内部还分裂)
9,现在可以通过浏览器访问
http://localhost/svn/myproject/
  附截图一张:生产环境请用这台服务器的IP:IP/svn/myproject

常见错误:

1,浏览器出现提示:

   Can not open SVN filesystem (大意如此)
  
解决方法: 
请查看apache2日志文件,一般在/var/log/apache2/error.log(CentOS可能有区别)会有提示,一般记录为找不到format文件,也就是你的版本库里面没有format文件等一系列配置文件,原因一般为你的svnadmin create /your/repos/path初始化命令没有执行正确或者米有执行,请删除版本库并重新执行下,不删除的话重新执行命令往往遇到第3个问题,呵呵。

2,浏览器提示你403 Forbidden错误,对应/XXX/XXX目录无法访问

   解决方法:
a,这个主要是你访问不是你的版本库路径或者访问父级目录等,那么需要输入正确路径,并配置父级目录的访问权限即可;
b,如果你路径没有问题,那么查看你的版本库目录的用户组是否为svn用户组,权限是否正确,请用chown以及chmod命令修改,这样应该能正确访问了。

3,使用导入命令出现 日志信息是路径名称,XXXXXXXX,要用--force-log一大堆提示

   解决方法:
  这个错误是由于版本库建立问题造成的,至于为什么出现,我没有弄懂,网上资料也不是很多,希望有牛人指点下,我遇到这个错误是直接删除旧版本库,重新建立后,问题消失。

4,如果在使用import命令过程中出现Can't open file '/svn/myproject/XXX-current-lock': Permission denied 的错误

   问题原因:
    apache对于你创建的目录没有权限。
      解决方法:
那么很自然你该确认该目录的用户组和权限问题,请用chown和chmod命令修改。建议修改为775.也可以将www-data加入目录创建用户的用户组里面.(CentOS Apache运行用户为apache)
***如果你排除上述错误后,还是出现403和Cannot open SVN filesystem提示的话:
***重要提示:
如果你的403和Can not open SVN filesystem在经过上面设置后还是出现?
那么多半是由于你的配置文件出错了,。

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

SVNPath和SVNParentPath是有很大区别的,一般你希望在父级目录下建立多个版本库,那么需要用到SVNParentPath,如果你就想用一个版本库,那么SVNPath比较适合你,如果你用SVNParentPath,设置为 /svn/myproject(本文中例子),那么很遗憾,必须报上面1的错误,因为这是SVNPath的值,

正确设置:
SVNPath:/svn/myproject (/svn错误)
#SVNParentPath:/svn(/svn/myproject错误)
             只能配置一个参数

本文随时补充,欢迎大牛指正


参考文档:
http://indian.blog.163.com/blog/static/108815820071127921148/
http://www.svnforum.org/threads/31143-Forbidden-access-or-bad-repository
http://blog.lixiphp.com/svn-could-not-open-the-requested-svn-filesystem-and-403-forbidden
http://www.iteye.com/topic/293540
分享到:
评论

相关推荐

    ubuntu linux 配置svn+apache+ssl

    ubuntu linux中配置svn+apache+ssl

    Ubuntu上搭建SVN服务器全攻略

    Ubuntu上搭建SVN服务器详细步骤。 目 录 1 概述 1 2 安装Ubuntu 9.10服务器 1 3 安装Apache服务器 1 4 创建SVN服务器 1 4.1 安装SVN 1 4.2 增加组 2 4.3 创建SVN仓库 2 4.4 配置Apache服务器 2 5 配置SSL 3 6 远程...

    ubuntu apache+svn 常用配置

    本文将详细阐述在Ubuntu上配置Apache与Subversion的步骤和常见设置,以便于实际工作中的项目管理和协作。 一、安装Apache 1. 更新系统包列表:`sudo apt-get update` 2. 安装Apache:`sudo apt-get install apache2...

    ubuntu下Apache2+Svn详细配置

    Apache2+Svn 在 Ubuntu 下的详细配置 在本文中,我们将详细介绍如何在 Ubuntu 系统下配置 Apache2+Svn,以便实现版本控制和协作开发。本文将涵盖从安装 Apache2 和 Svn 服务器到配置 Svn 仓库的所有步骤。 安装 ...

    ubuntu下svn+apache安装配置

    Ubuntu 下 SVN+Apache 安装配置 本文档将指导您在 Ubuntu 操作系统下安装和配置 SVN(Subversion)和 Apache 服务器。 一、准备源码包 在开始安装之前,需要下载以下三个源码包: 1. Subversion 1.6.17:...

    ubuntu安装svn步骤及所需文件

    最后,验证Apache配置是否正确无误: ```bash sudo apache2ctl configtest ``` 如果一切正常,你应该看到“Syntax OK”的提示。现在,Subversion仓库已经可以通过HTTP/HTTPS协议访问了。 在提供的压缩包`linux_...

    Ubuntu上搭建SVN服务器全攻略.docx

    本文将详细介绍 Ubuntu 环境下搭建 SVN 服务器的过程,包括安装 Ubuntu 服务器、安装 Apache 服务器、创建 SVN 服务器、配置 Apache 服务器、设置 SVN 权限等步骤。 标题:Ubuntu 上搭建 SVN 服务器全攻略 描述:...

    Ubuntu+svn+ssl+ldap

    Ubuntu+svn+ssl+ldap 的安装以及集成

    Ubuntu 18.04 LTS 搭建SVN服务器

    在Ubuntu 18 LTS环境中,搭建一个简单apache2+subversion的版本控制。

    ubuntu下SVN服务器安装配置

    8. 解决常见问题:在安装和配置 SVN 服务器过程中,可能会遇到一些问题,如权限错误等,可以通过 Ubuntu 的网站、Wiki、论坛或邮件列表寻求支持。 通过本资源,用户可以快速安装和配置 SVN 服务器,实现版本控制和...

    ubuntu下简单安装svn服务器

    ubuntu下简单安装svn 服务器--简介: svn是目前使用比较多的版本控制软件,目前在linux下,svn服务器一般有两个选择:svnserve和apache,下文就主要介绍怎么在ubuntu9.10里安装和使用svn服务器。

    ubuntu下svn服务器的搭建

    在Ubuntu系统中搭建SVN(Subversion)服务器是一项常见的任务,尤其对于软件开发团队来说,SVN是一个必备的版本控制系统,用于管理代码库。本文将详细介绍如何在Ubuntu上配置和运行一个SVN服务器。 首先,我们需要...

    Ubuntu_SVN

    Ubuntu下安装和配置SVN(Subversion)是一个常见的需求,尤其对于开发者和团队协作而言,SVN提供了一种强大的版本控制系统,可以有效地管理代码的版本和协同工作。以下是一个详细的步骤指导,帮助你完成在Ubuntu系统...

    svn服务器的安装与配置

    总之,配置SVN服务器涉及安装SVN软件、设置Apache模块、创建仓库、配置Apache配置文件以及管理用户权限。这是一项至关重要的任务,因为它确保了团队的协作效率和代码的版本控制。随着对SVN服务器配置的深入理解和...

    ubuntu_linux_svn服务端客户端配置

    本主题将详细讲解如何在Ubuntu Linux系统上配置SVN服务端和客户端,以及与之相关的标签“rabbit”可能涉及的RabbitMQ消息队列。 首先,让我们深入了解Ubuntu Linux上的SVN服务端配置: 1. **安装SVN服务器**:在...

    Linux整合Apache和SVN

    配置完成后,重启Apache服务使改动生效,如`sudo systemctl restart apache2`(Ubuntu)或`sudo systemctl restart httpd`(CentOS)。现在,你应该可以通过Web浏览器访问`http://your-server/svn`来访问你的SVN仓库...

    Ubuntu下构架高可用SVN服务器及操作命令

    总之,构建高可用的Ubuntu SVN服务器需要深入了解SVN的配置、Apache的使用以及系统级的管理技巧。通过合理的规划和实践,可以创建一个可靠且易于维护的版本控制系统,为团队的协作提供强大的支持。

    SVN+Apache安装配置步骤

    以下是对"SVN+Apache安装配置步骤"的详细解释: 1. **安装SVN服务端**: - 首先,你需要在服务器上安装SVN的服务器组件,通常这一步是在Linux系统上执行。你可以通过包管理器如`apt`(Ubuntu/Debian)或`yum`...

    ubuntu14.04 LTS svn1.9.4源码及依赖库打包

    在本文中,我们将深入探讨如何在Ubuntu 14.04 LTS系统上,基于源码编译并安装Subversion 1.9.4,以及它所依赖的APR(Apache Portable Runtime)1.5.2和APR-Util 1.5.4库。这个过程对开发者和技术人员来说是必要的,...

    svn jsvnadmin 搭建 svn服务器

    本文将详细介绍如何使用`svn`和`jsvnadmin`搭建一个SVN服务器,以及如何结合TortoiseSVN进行客户端操作。 首先,我们需要了解`svn`。`svn`是Subversion的命令行工具,它允许用户对文件和目录进行版本控制,包括创建...

Global site tag (gtag.js) - Google Analytics