`

ubuntu14.04安装apache2 svn

阅读更多
下面就讲一下如何采用Apache+SVN,实现以http的方式享受SVN服务,示例用户名为jzk。
一、Apache
1、安装Apache
sudo apt-get install apache2

如果报如下错误:
Package apache is not available, but is referred to by another package

需要更新源
sudo apt-get update 
sudo apt-get upgrade


2、修改端口
因为nginx默认情况应该是占用了80端口,而apache默认也应该使用的是80端口,所以会发生端口冲突。
sudo vim /etc/apache2/ports.conf
sudo vim /etc/apache2/sites-available/000-default.conf

将上面2个文件中的80端口修改8099,或者其他,然后在重新启动apache
sudo /etc/init.d/apache2 restart


3、配置多站点
a、修改配置文件
$ cd /etc/apache2/sites-available
$ sudo cp 000-default.conf 001-filehost.conf


b、修改001-filehost.conf文件
将文件中的DocumentRoot部分替换为以下部分:
DocumentRoot /home/www
Options +Indexes
IndexOptions FancyIndexing FoldersFirst NameWidth=* DescriptionWidth=*

同时编辑文件 /etc/apache2/apache2.conf,在里面加入如下内容:
<Directory /home/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

c、激活站点 001-filelist.conf
sudo a2ensite 001-*
sudo a2dissite 000-*
service apache2 reload #无效
sudo /etc/init.d/apache2 restart



二、SVN
1、安装SVN命令如下:
sudo apt-get install subversion
sudo apt-get install libapache2-svn
sudo apt-get install apache2-utils


2、查看/etc/apache2/mods-enabled/dav_svn.load文件,有mod_dav_svn.so和mod_authz_svn.so这两个动态库说明apache已经加载了Subversion的访问控制模块。如果没有,手动添加。
sudo vim /etc/apache2/mods-enabled/dav_svn.load
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so



3、在/home目录下创建一个SVN项目仓库(repository),指令如下:
sudo mkdir -pv /home/svn/repos #创建SVN项目仓库
sudo svnadmin create --fs-type fsfs /home/svn/repos
/**
sudo chown -R root:subversion repos #将repos这个目录下的所有文件和目录转移所有权给subversion用户组中的用户root;-R对目前目录下的所有档案与子目录进行相同的拥有者变更
sudo svnadmin create /home/svn/repos #用SVN自带的工具svnadmin create创建SVN项目仓库
sudo chmod -R g+rws repos #赋予组成员对所有新加入项目仓库repos的文件和目录均拥有相应的权限
**/

运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb。

如果一切正常,命令执行后没有任何反馈信息而迅速返回。一个新的版本库就被创建出来。我们可以查看下版本库里有什么。

用如下命令我们可以测试下Subversion能不能检出。
sudo svn co file:///home/svn/repos/


4、 Subversion添加用户
sudo touch /home/svn/passwd.conf
sudo touch /home/svn/authz.conf


sudo htpasswd -c /home/svn/passwd.conf jzk

首次创建需要添加-c选项,将登录Ubuntu系统的用户jzk添加到SVN用户中。
如果再次添加用户的话不需要添加-c选项了,如果添加-c选项,之前已经添加的用户就会消失,相当于从新开始了。如下:
sudo htpasswd /etc/subversion/passwd new_jzk


5、添加svnAdmin的用户组,并将账号jzk添加到这个组中,命令如下:
sudo addgroup svnadmin
sudo usermod -G svnadmin -a jzk

顺带解释一下用到的2个参数
# 其中-G指定用户添加到哪个组中
-a 参数的意义等同于  -dR  --preserve=all
就是以下几个意义的组合:
-d:   保持软链接
-R:   递归
--preserve=all  :保持文件原有属性
这里-a表明我们只是将用户jzk添加到svnadmin这个组中,用户多了一个所属的用户组,但是不会从之前所属的用户组中脱离出来。

6、 Subversion分配用户权限
授权用户权限命令如下:
sudo vim /home/svn/authz.conf

编辑内容:
#用户组指令
[groups]
svnadmin = jzk,将用户jzk添加到用户组svnAdmin
#其他组
[repos:/]
@svnadmin = rw #为用户组subversion添加读写权限
* = 

其中* = 表示其它所有用户都没有任何权限。@表示用户组,*表示所有用户,[/]表示全部目录。注意顶格写。UTF-8格式才能配置SVN权限,Linux下默认是UTF-8,Windows下有转换工具,比如Eclipse->Edit->最后一项。一般针对最末梢文件设置权限。

特别注意:权限分配时,不能写成cen, huang =r,这样提交时会出现错误:svn Commit failed checkout of 403 forbidden。应该写成cen = r和huang = r

设置SVN开机启动
a、创建执行脚本svn.sh
#sudo touch /root/svn.sh
sudo vim /root/svn.sh
#输入如下内容
#!/bin/bash
svnserve -d -r /home/svn

b、添加可执行权限
sudo chmod ug+x /root/svn.sh

c、添加自动运行
sudo vim /etc/init.d/rc.local

在最后添加一行内容如下:
/root/svn.sh

重启服务器


7、配置Apache,以http的协议方式访问SVN服务。
在安装libapache2-svn的时候,生成了一个路径为/etc/apache2/mods-available/dav_svn.conf的文件,接下来我们对其进行些许的修改来完成对Apache的配置。
sudo vim /etc/apache2/mods-available/dav_svn.conf

修改完的dav_svn.conf内容如下所示:
<Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/passwd.conf
AuthzSVNAccessFile /home/svn/authz.conf
Require valid-user
</Location>



8、重启SVN:
sudo killall svnserve
svnserve -d -r /home/svn --config-file /home/svn/repos/conf/svnserve.conf
sudo /etc/init.d/apache2 restart



9、访问
sudo /etc/init.d/apache2 restart

http://192.168.36.135:8099/svn/repos/



Subversion添加项目
我以统一的版本库为例,添加三个项目business,develop和project。首先在一个临时目录下,根据 Subversion 版本控制的一般布局结构,创建出三个项目的主要目录树,命令如下:
sudo mkdir /home/temp
sudo mkdir /home/temp/develop
sudo mkdir /home/temp/business
sudo mkdir /home/temp/project

然后用 svn import 命令导入已有的目录树。
svn import /home/svn/tmp/ file:///home/svn/repos/ --message "init"

可以用 svn list 确认导入的项目是否正确:
svn list --verbose file:///home/svn/repos/

如果要查看最新修订版本的信息,可以使用 svnlook info 命令:
svnlook info /home/svn/repos/

还可以在命令后面接上 “--revision 版本号” 来指定某一个修订版的显示。

还可以用如下命令来显示版本库的具体树形结构,后面的 “--show-ids” 选项指定显示每一个显示元素的修改版本 ID。
svnlook tree /home/svn/repos/ --show-ids



重启之后我们在浏览器中键入SVN项目的访问地址就可以查看项目中的内容了,假定我们配置服务器的IP地址为192.168.36.135,那么我们在浏览器中可键入http://192.168.36.135/svn/respo/进行访问。
以上我们介绍的是SVN服务器端的安装和配置,在客户端可以安装一个SVN的客户端软件,如TortoiseSVN这个软件。TortoiseSVN的安装使用都非常方便,但是在第一次使用的时候可能会遇到一些小问题,如在TortoiseSVN Commit时报出错误:
svn: Can't open file '/home/svn/repos/db/txn-current-lock': Permission denied
    消除这种错误的解决方法是给SVN目录添加读写权限,命令如下:
cd /home/svn/repos
sudo chown jzk:1 -R db/
sudo chmod 777 -R db/
分享到:
评论

相关推荐

    ubuntu14.04 Docker离线安装包

    在Ubuntu 14.04上安装Docker是许多系统管理员和开发者的需求,尤其是在没有互联网连接或者网络环境受限的情况下。Docker是一个开源的应用容器引擎,它允许开发者将他们的应用及其依赖打包到一个可移植的容器中,然后...

    虚拟机+Ubuntu 14.04安装方法

    5. 安装和配置Ubuntu系统:完成虚拟机配置后,通过虚拟机启动并加载Ubuntu 14.04的安装镜像,按照提示进行操作系统的安装。在这个过程中,可能会有一些特定的配置要求,如时区设置、语言选择、磁盘分区等。对于磁盘...

    Ubuntu 14.04安装配置NFS服务器

    Ubuntu 14.04 安装配置 NFS 服务器 NFS(Network File System)是一种允许多个电脑通过网络共享文件的系统。它使得不同的计算机可以通过网络访问和共享对方的文件,实现了文件的共享和交换。在 Ubuntu 14.04 中,...

    ubuntu14.04安装gitlab.pdf

    Ubuntu 14.04 安装 GitLab 指南 GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。它提供 Git 版本控制版本控制、代码检查、Bug 跟踪和 Wiki,它可以通过 ...

    Ubuntu14.04离线安装NFS方法和安装包

    在Ubuntu 14.04上离线安装NFS涉及到几个关键步骤,包括理解NFS的基本概念、准备安装包、配置NFS服务器以及设置客户端。下面将详细介绍这个过程。 1. **NFS基本概念**:NFS由Sun Microsystems开发,是一种标准的...

    ubuntu 14.04设置Apache虚拟主机的方法.docx

    Ubuntu 14.04 设置 Apache 虚拟主机的方法 在本教程中,我们将学习如何在 Ubuntu 14.04 上设置 Apache 虚拟主机。虚拟主机是一种允许多个域名共享同一个IP地址的技术,它广泛应用于 Web 服务器中。在本教程中,我们...

    Ubuntu 14.04安装UHD与GNURadio

    有关在Ubuntu 14.04上安装UHD和GNURdio的教程,自己总结的

    ubuntu14.04 默认root登陆

    在 Ubuntu 14.04 中,默认情况下 root 帐号是禁用的,这是为了安全考虑。但是在某些情况下,我们需要使用 root 帐号来进行系统管理和维护。下面我们将介绍如何启用 root 帐号、如何在终端模式下切换到 root 身份,...

    Ubuntu14.04升级GCC4.9.3

    本文档详细介绍了在 Ubuntu 14.04 系统上升级 GCC 到 4.9.3 版本的步骤。GCC 是一个强大的编译器,支持 C++11 和 C++14 特性。在 Ubuntu 14.04 系统中,默认的 GCC 版本是 4.8.2,本文将指导用户如何升级到 4.9.3 ...

    Ubuntu 14.04 64位镜像

    ........Ubuntu 14.04 64位Linux操作系统IOS镜像下载..........................................................................................................................................................

    mysql-ubuntu14.04系统版

    mysql-ubuntu14.04系统版

    Ubuntu 14.04版本 NFS 离线安装包

    以下将详细讲解如何在Ubuntu 14.04上进行NFS的离线安装,并介绍相关的依赖包。 首先,你需要下载Ubuntu 14.04的NFS离线安装包,这个包应该包含了NFS服务及其所有必需的依赖。在没有网络的情况下,你可以通过其他有...

    ubuntu14.04-百度网盘分享下载

    复制文件内百度网盘分享地址ubuntu-14.04-desktop-amd64.iso

    vscode_for_ubuntu14.04.zip

    Ubuntu 14.04系统下能用的vscode客户端(新版本在启动时无响应,且无法打开终端),版本号:code_1.42.1-1581432938_amd64.deb 使用方法:解压后执行sudo dpkg -i code*

    Ubuntu14.04离线安装ssh所需安装包deb

    sudo dpkg -i openssh-client_6.6p1-2ubuntu1_amd64.deb sudo dpkg -i openssh-sftp-server_6.6p1-2ubuntu1_amd64.deb sudo dpkg -i libck-connector0_0.4.5-3.1ubuntu2_amd64.deb sudo dpkg -i openssh-server_6.6...

    安装完Ubuntu 14.04要做的件事

    2. **安装常用软件**:Ubuntu 14.04预装了一些基础应用,但可能并不包括所有你需要的。你可以通过`sudo apt-get install`命令安装例如办公软件(LibreOffice)、媒体播放器(VLC)、浏览器(Firefox)等。 3. **...

    四、ubuntu14.04+caffe环境安装1

    在本文中,我们将详细讨论如何在Ubuntu 14.04上配置Caffe环境,包括安装GCC 4.7、相关依赖、NVIDIA驱动以及CUDA。Caffe是一种高效的深度学习框架,广泛应用于图像识别和计算机视觉任务。由于Ubuntu 14.04自带的GCC...

    ubuntu14.04用apache-tomcat-8.0.15.tar.gz

    在本场景中,我们关注的是在Ubuntu 14.04操作系统上安装和配置Apache Tomcat 8.0.15的过程。这个过程涉及到几个关键步骤,包括下载、解压、配置环境变量、启动服务以及进行基本的故障排查。 首先,我们需要从官方...

    在ubuntu14.04系统中安装indigo版本ROS的教程

    在Ubuntu 14.04系统中安装indigo版本ROS的教程内容涵盖了从系统软件源配置、添加ROS软件源、导入公钥、安装ROS不同版本到初始化rosdep和设置环境变量等多个方面。本文将详细介绍这些知识点。 首先,配置Ubuntu的...

    Ubuntu14.04中安装配置bochs详解

    Ubuntu14.04中安装配置bochs详解。亲自安装成功。

Global site tag (gtag.js) - Google Analytics