休息了很久没写什么东西,最近工作需要配置了一下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/
分享到:
相关推荐
之前参考了很多资源,装了以后很多问题,后来自己摸索出来的笔记,以及增加多个项目的配置说明。绝对管用
Debian下手动安装LiteSpeed+PHP+MySQL教程.docx
详细的linux下安装svn命令行 安装Subversion服务器 debian:~# apt-get install subversion subversion-tools 创建一个新的储存库: debian:~# svnadmin create /data/svn 导入你的源码: debian:~# svn import /data...
dedian环境下subversion的安装以及配置,ubuntu下的也差不多,可以参考使用
Debian 5.0 下的 proftpd + mysql虚拟用户认证配置 详细配置文档,能够正常通过mysql数据库中用户信息登录ftp服务器,测试通过!
DebianLNMP加强版?...DebianLNMP是一个用Linux Shell编写的可以为Debian/Ubuntu VPS(VDS)或独立主机...DebianLNMP一键安装包是很不错的安装脚本,用在低配置VPS上最合适不过啦,安装方便快捷,轻轻松松全自动安装LNMP.
为CentOS / Debian / Ubuntu安装LAMP(Linux + Apache + MySQL / MariaDB / Percona Server + PHP)描述LAMP是一个功能强大的bash脚本,用于安装Apache + PHP + MySQL / MariaDB / Percona Server等。 您可以通过...
debian下apache日志集中管理,日志服务器配置
debian.11.3+debian_bullseye+debian_buster三个版本的debian镜像
在Debian的系统上的基本系统可以通过apt-get install cjk-latex latex texlive安装基本系统。本文介绍了在debian上,使用Latex+Dvipdfm解决中字体问题。
解决深度系统v15中无法安装libjasper1的问题,直接下载安装即可。原始的网址为:http://ftp.br.debian.org/debian/pool/main/j/jasper/libjasper1_1.900.1-debian1-2.4+deb8u3_amd64.deb
debian 7稳定版本中安装pyqt5,基于python3
一、Debian10.4安装(已经安装完系统的跳过这个部分) 1.Debian10.4镜像下载 因为官网版本更替后,在红框位置显示的就可能不是Debian 10.4网络安装版的镜像,所以我做了一个百度云盘的永久分享 2.安装步骤 3.Debian ...
debian 5+xdmcp+oracle 10g debian 5成功安装oracle 10g文档之前的系统配置文档
Debian 5 VPS下的Nginx+PHP+MySQL的解决方案
在友善之臂NanoPC-T2上安装nginx服务器和php5-fpm的deb安装包及其所依赖的安装包。
带有debian squeeze + php 5.2 + apache 2的Docker项目 Docker组成 使用docker-compose配置项目 将docker-compose.yml.dist复制到docker-compose.yml 配置docker-compose.yml文件 目录映射 数量: {local_source_...
debian6的安装和配置指南,简洁明了地帮助你安装配置debian6.
将这个文件刻盘,或者映射到虚拟光驱中,就可以启动Debian Linux的安装。注意在安装过程中需要保证网络的畅通,并且网络中有可用的Debian安装源。