`
simen_net
  • 浏览: 306343 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Debian6下安装SVN+Apache2+SSH实现HTTPS

阅读更多

休息了很久没写什么东西,最近工作需要配置了一下https的svn服务器,留个爪子分享一下

 

#首先需要安装所需要的软件
apt-get install subversion libapache2-svn apache2 subversion-tools

#增加subversion用户组
sudo addgroup subversion
#www-data是apache默认的,让他也能够管理subversion的东西
sudo usermod -G subversion -a www-data

#检查结果看上去应该像这样:
# cat /etc/group|grep subversion
#subversion:x:1001:www-data,exp

#执行下面的命令
sudo mkdir /usr/svn
cd /usr/svn
sudo mkdir StrongWEB
sudo chown -R root:subversion StrongWEB

#下面的命令用于创建 SVN 文件仓库
sudo svnadmin create /usr/svn/StrongWEB

#赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
sudo chmod -R g+rws StrongWEB

#查看txn-current-lock文件的权限,应该类似于: 
#ls -l /usr/svn/StrongWEB/db/txn-current-lock
#	-rw-rwSr-- 1 root subversion  0  2009-06-18  15:33  txn-current-lock

#您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中: 
# SSLRequireSSL 为强制使用SSL连接
# Require valid-user 为强迫登录
# SVNParentPath 为多个版本库时使用 单个版本库时可使用 SVNPath
#注意下面是/svn/,最后的那个/不能少
<Location /svn/>
	DAV svn
	SSLRequireSSL
	SVNParentPath /usr/svn/
	AuthzSVNAccessFile /usr/svn/authz.conf
	AuthType Basic
	AuthName "StrongWEB subversion repository"
	AuthUserFile /etc/subversion/passwd
	SVNListParentPath on #这个是否允许列表svn的目录,即可以查看所有项目列表
#	<LimitExcept GET PROPFIND OPTIONS REPORT>
		Require valid-user
#	</LimitExcept>
</Location>

#您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
#“-c”选项表示创建新的/etc/subversion/passwd文件
htpasswd -c /etc/subversion/passwd user_name
#如果要添加其他用户,则去掉“-c”选项即可
# htpasswd /etc/subversion/passwd other_user_name


#建立  SSL 认证
mkdir /etc/apache2/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#-days 365 中的365代表证书的有效期是一年,如果出现SSL 接收到一个超出最大准许长度的记录。对不起,你设置的事件太长,改小点吧
#回答运行中的提问,切记!!!一定要填写,否则web能打开,但是小乌龟的svn会报错!!!

#启用SSL使其有效
a2enmod ssl
#然后确认一下/etc/apache2/ports.conf里包含有"Listen 443"之类的字段

#重写 rewrite rule 如下操作:
a2enmod rewrite
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

#修改这两个文件的对应内容:
# "default" 文件:
NameVirtualHost *:80
<virtualhost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    RewriteLog      "/var/log/apache2/rewrite.log"
</virtualhost>

# "ssl" 文件:
NameVirtualHost *:443
<virtualhost *:443>
        ServerAdmin webmaster@localhost

        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache.pem

        DocumentRoot /var/www/
        <directory />
                Options FollowSymLinks
                AllowOverride None
        </directory>

        <directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                # Commented out for Ubuntu
                #RedirectMatch ^/$ /apache2-default/
        </directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </directory>

</virtualhost>


#修改以后执行
a2ensite ssl

/etc/init.d/apache2 restart

# Apache 方式下的分组管理 有时,我们希望能够将多个开发人员编为一组,使用组的方式来为 项目设定权限。比如 projectA 项目只有属于 groupA 的成员才可以存取。下面我们来介绍其配置方法。这里,我们就要用到 mod_authz_svn 提供的功能了。我们对 /etc/apache2/mods-available/dav_svn.conf 中的目录配置可再做一次修改:
<Location /svn/StrongWEB>
	DAV svn
	SSLRequireSSL
	SVNPath /usr/svn/StrongWEB
	AuthzSVNAccessFile /usr/svn/authz.conf
	AuthType Basic
	AuthName "StrongWEB subversion repository"
	AuthUserFile /etc/subversion/passwd
	<LimitExcept GET PROPFIND OPTIONS REPORT>
		Require valid-user
	</LimitExcept>
</Location>
#authz.conf大致结构如下:
[groups]
everyone = simen , jby , atu
groupA = simen
groupB = jby , atu
[StrongWEB:/]
@groupA = rw
@everyone = r
[StrongWEB123:/]
@everyone = r
@groupB = rw


# 文件权限再次设定
# 每次新增版本库都必须执行下面的操作
chown -R root:subversion /usr/svn/
chmod -R g+rws /usr/svn/
 
分享到:
评论

相关推荐

    SVN+Apache安装配置步骤

    - 在仓库的conf目录下,编辑`svnserve.conf`(如果使用svnserve作为SVN服务)或`httpd.conf`(如果使用Apache)。在这里,你可以设置用户认证、访问控制等。 - 对于Apache,需要在`httpd.conf`中启用mod_dav_svn...

    Debian下svn服务器的安装与配置

    Debian 下 SVN 服务器的安装与配置 本文将详细介绍 Debian 环境下 Subversion 服务器的安装和配置过程。Subversion 是一种版本控制系统,允许多用户共同协作开发项目。本文将从安装 Subversion 开始,到配置 SVN ...

    Debian6.0下svn+trac详细安装说明(包装上)

    在本文中,我们将详细介绍如何在Debian 6.0系统上安装并配置Subversion (SVN) 和Trac。Subversion是一种版本控制系统,而Trac则是一个集成的项目管理工具,它提供了问题跟踪、文档管理和源代码浏览等功能,并与...

    Ubuntu+svn+ssl+ldap

    sudo apt-get install subversion apache2 libapache2-svn libapache2-mod-ldap-userdir libapache2-mod-vhost-ldap libapache2-mod-ldap-userdir-dbg ``` **Apache** 是一款流行的Web服务器,用于发布网页和提供...

    SVN + Apache 成功安装部署

    本篇文章将详细阐述如何成功安装和部署SVN与Apache的集成。 1. **SVN安装** - 首先,你需要在你的服务器上安装SVN。这通常通过包管理器完成,如在Ubuntu/Debian系统中使用`apt-get install subversion`,在CentOS/...

    Jenkins + Maven + SVN + SSH持续集成【原创】

    ### Jenkins + Maven + SVN + SSH持续集成 #### 知识点概述 本文旨在介绍如何利用Jenkins、Maven、SVN以及SSH等工具构建一套完整的持续集成环境。通过这一过程,可以实现自动化构建、测试及部署,从而提高开发效率...

    svn+ldap+sasl认证(svn通过ldap用户进行认证登陆)

    在实现 svn+ldap+sasl 认证时,需要安装 ldap 服务器和配置 ldap 服务,然后在 svn 服务器中配置 sasl 认证协议,使用 ldap 服务器进行用户认证。下面是实现 svn+ldap+sasl 认证的步骤: 1. 安装 ldap 服务器 首先...

    php+apache+mysql 在linux下的安装

    以下将详细介绍如何在Linux环境下安装这些组件。 首先,我们需要确保Linux系统是最新的。打开终端并运行以下命令来更新系统包列表和安装必要的软件包: ```bash sudo apt-get update sudo apt-get upgrade ``` **...

    Debian下手动安装LiteSpeed+PHP+MySQL教程.docx

    【Debian下手动安装LiteSpeed+PHP+MySQL教程】 在Debian系统中手动安装LiteSpeed Web服务器、PHP解释器和MySQL数据库是一项常见的任务,尤其对于那些希望拥有更精细化控制的系统管理员来说。以下是一个详细的步骤...

    https+linux+svn服务器搭建指导书.docx

    在Linux环境下,有许多发行版可以选择,如Ubuntu、CentOS、Debian等。这里我们将以一种常见的发行版为例,例如Ubuntu 20.04 LTS,它稳定且支持长期更新,适合搭建服务器环境。 接着,我们需要安装一些必要的工具。...

    linux下的Apache2 + mysql5 + php5 安装教程[力荐]

    在Linux环境中搭建Apache2、MySQL5和PHP5的组合,也被称为...在提供的压缩包文件“linux下的Apache2 + mysql5 + php5 安装详解”中,可能包含了更详细的步骤、注意事项以及解决常见问题的方法,建议参照文档进行操作。

    Linux下java web服务器搭建(jdk6 apache+2Tomcat6+svn).doc

    【Linux下Java Web服务器搭建(JDK6 + Apache + 2个Tomcat + SVN)】 在Linux环境下构建Java Web服务器通常涉及到多个组件的安装与配置,主要包括Java开发工具包(JDK)、Apache HTTP服务器、Tomcat应用服务器以及...

    Linux离线安装svn.zip

    本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和配置svn。 首先,确保你的Linux系统已经安装了基本的开发工具,通常包括GCC编译器、make以及相关的库。这些工具可以...

    linux + apache + subversion安装和基本配置

    安装Apache通常通过包管理器完成,例如在Ubuntu或Debian系统中,可以运行以下命令: ```bash sudo apt-get update sudo apt-get install apache2 ``` 安装完成后,Apache会自动启动。我们可以通过访问`...

    LINUX+APACHE+BDB+OPENLDAP+PHPLDAPADMIN安装配置包和步骤1

    2. 安装Apache:使用包管理器(如`apt-get`或`yum`)安装Apache服务器。 3. 配置Apache:设置虚拟主机,配置必要的模块,例如mod_php,以支持PHP解析。 4. 安装PHP:同样使用包管理器安装PHP及其相关扩展,确保与...

    Debian10.4安装zabbix.docx

    【Debian10.4 安装】 Debian10.4 的安装过程涉及下载镜像、设置安装选项以及执行安装步骤。首先,你需要在官方或第三方资源中找到 Debian 10.4 的镜像文件。由于官方版本的更新,直接在官网上可能找不到特定的网络...

    LINUX下PHP+MYSQL+APACHE配置过程

    2. **启动Apache**:安装完成后,启动Apache服务,Ubuntu/Debian使用`sudo systemctl start apache2`,CentOS/RHEL使用`sudo systemctl start httpd`。 3. **设置开机启动**:确保Apache在系统启动时自动运行,使用...

    Linux整合Apache和SVN

    安装完成后,需要创建一个SVN仓库,这可以通过`svnadmin create /path/to/repo`命令实现,这里的`/path/to/repo`是你希望存放仓库的路径。 然后,我们需要设置Apache来作为SVN的前端Web服务器。Apache有一个名为mod...

Global site tag (gtag.js) - Google Analytics