Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号

简介:

1、在服务器上安装配置SVN服务;

2、配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问;

3、Apache的http和svnserve独立服务器两种模式使用相同的访问权限账号。

具体操作:

一、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

二、开启防火墙端口

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容版权所有,转载请注明出处及原文链接

基于Apache的http模式,默认端口为80

基于svnserve的独立服务器模式,默认端口为3690

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

service iptables restart #最后重启防火墙使配置生效

三、安装Apache

yum install httpd apr apr-util httpd-devel #安装Apache

yum install mod_dav_svn mod_auth_mysql #安装基于Apache的http模式访问的支持模块

chkconfig httpd on #设置开机启动

service httpd start #启动Apache

httpd -version #查看Apache版本信息

cd /etc/httpd/modules/

#查看是否有mod_dav_svn.so和mod_authz_svn.so模块,如果有,说明mod_dav_svn安装成功!

#mod_auth_mysql模块是用数据库存储账号信息,本次教程没有涉及,可以不安装!

注意:如果Apache启动之后提示错误:

httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

解决办法:

vi /etc/httpd/conf/httpd.conf #编辑

ServerName www.example.com:80 #去掉前面的注释

:wq! #保存退出

四、安装SVN

yum install subversion #使用yum命令在线安装

svnserve --version #查看svn版本信息

五、配置SVN

1、创建svn版本库

mkdir -p /home/svn #创建svn版本库存放目录

cd /home/svn #进入目录

svnadmin create /home/svn/project1 #创建svn版本库project1

svnadmin create /home/svn/project2 #创建svn版本库project2

svnadmin create /home/svn/project3 #创建svn版本库project3

2、设置配置文件

mkdir -p /home/svn/conf #创建配置文件目录

cp /home/svn/project1/conf/passwd /home/svn/conf/passwd #拷贝账号密码配置文件模板

cp /home/svn/project1/conf/authz /home/svn/conf/authz #拷贝目录权限配置文件模板

cp /home/svn/project1/conf/passwd /home/svn/conf/svnserve.conf #拷贝全局配置文件模板

vi /home/svn/conf/passwd #编辑,添加以下代码

[users]

# harry = harryssecret

# sally = sallyssecret

osyunwei=123456

osyunwei1=123456

osyunwei2=123456

osyunwei3=123456

:wq! #保存退出

vi /home/svn/conf/authz #编辑,添加以下代码

[groups]

admin = osyunwei

project1 = osyunwei1

project2 = osyunwei2

project3 = osyunwei3

[/]

@admin = rw

* =

[project1:/]

@admin = rw

@project1 = rw

* =

[project2:/]

@admin = rw

@project2 = rw

* =

[project3:/]

@admin = rw

@project3 = rw

* =

:wq! #保存退出

vi /home/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代码

[general]

anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none

auth-access=write #授权用户写权限

password-db=/home/svn/conf/passwd #用户账号密码文件路径,可以写绝对路径

authz-db=/home/svn/conf/authz #访问控制权限文件路径,可以写绝对路径

realm=svn #每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。

:wq! #保存退出

3、启动SVN

svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690

#--config-file后面跟全局配置参数文件

ps -ef|grep svn|grep -v grep #查看进程

netstat -ln |grep 3690 #检查端口

killall svnserve #关闭svn

4、设置svn服务开机启动

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容版权所有,转载请注明出处及原文链接

vi /etc/init.d/svn #编辑,添加以下代码

#!/bin/sh

# chkconfig: 2345 85 85

# processname: svn

svn_bin=/usr/local/svn/bin

svn_port=3690

svn_home=/home/svn

svn_config=/home/svn/conf/svnserve.conf

if [ ! -f "$svn_bin/svnserve" ]

then

echo "svnserver startup: cannot start"

exit

fi

case "$1" in

start)

echo "Starting svnserve..."

$svn_bin/svnserve -d -r $svn_home --config-file $svn_config --listen-port $svn_port

echo "Successfully!"

;;

stop)

echo "Stoping svnserve..."

killall svnserve

echo "Successfully!"

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: svn { start | stop | restart } "

exit 1

esac

:wq! #保存退出

chmod +x /etc/init.d/svn #添加执行权限

chkconfig svn on #开机自启动

service svn start #启动

六、配置svn支持http访问

1、创建账号密码认证文件

htpasswd -cm /home/svn/conf/http_passwd osyunwei

htpasswd -m /home/svn/conf/http_passwd osyunwei1

htpasswd -m /home/svn/conf/http_passwd osyunwei2

htpasswd -m /home/svn/conf/http_passwd osyunwei3

根据提示输入2次密码即可。

注意:

/home/svn/conf/目录下面passwd文件是svnserve独立服务器使用的认证文件,密码没有加密,明文显示。

/home/svn/conf/目录下面http_passwd文件是Apache的http模式使用的认证文件,密码使用MD5加密。

passwd和http_passwd文件中,账号密码必须设置相同。

2、设置Apache配置文件

vi /etc/httpd/conf.d/subversion.conf #编辑,在最后添加以下代码

<Location /svn>

DAV svn

#SVNPath /home/svn

SVNParentPath /home/svn

# # Limit write permission to list of valid users.

# <LimitExcept GET PROPFIND OPTIONS REPORT>

# # Require SSL connection for password protection.

# # SSLRequireSSL

#

AuthType Basic

AuthName "Authorization SVN"

AuthzSVNAccessFile /home/svn/conf/authz

AuthUserFile /home/svn/conf/http_passwd

Require valid-user

# </LimitExcept>

</Location>

:wq! #保存退出

3、设置目录权限

chown apache:apache /home/svn -R #设置svn目录所有者为Apache服务运行账号apache

4、重启Apache服务

service httpd restart #重启

七、测试svn

Windows下安装svn客户端TortoiseSVN。

TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html

安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器

URL输入:svn://192.168.21.134/project1

用户名:osyunwei1

密码:123456

勾选:保存认证

确定

可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

URL输入:http://192.168.21.134/svn/project1

用户名和密码跟上面一样,可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

project1访问:

svn://192.168.21.134/project1

http://192.168.21.134/svn/project1

用户名:osyunwei1

密码:123456

project2访问:

svn://192.168.21.134/project2

http://192.168.21.134/svn/project2

用户名:osyunwei2

密码:123456

project3访问:

svn://192.168.21.134/project3 #svnserve独立服务器模式

http://192.168.21.134/svn/project3 #Apache的http模式

用户名:osyunwei3

密码:123456

扩展阅读:

1、Apache htpasswd命令选项参数说明

-c 创建一个加密文件

-n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

-m 默认apache htpassswd命令采用MD5算法对密码进行加密

-d apache htpassswd命令采用CRYPT算法对密码进行加密

-p apache htpassswd命令不对密码进行进行加密,即明文密码

-s apache htpassswd命令采用SHA算法对密码进行加密

-b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

-D 删除指定的用户

2、SVNPath 与 SVNParentPath区别:

SVNParentPath:支持多个相同父目录的SVN版本库。

SVNPath:只支持一个主目录的SVN版本库,如果在主目录下面建新项目,则提示无权访问。

至此,Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号教程完成。

=========下面是支持https访问的配置,在上面的基础上再继续操作即可===========

1.  https服务之前,通过查阅相关资料得知,需要通过申请创建服务器证书才可以正

常实现功能,所以需要使用yum命令安装申请证书所需要的软件包。

#yum  install  mod_ssl  openssl

2.  开始进行证书的申请工作

#cd  /etc/pki/tls/private

#openssl  genrsa  -out  ca.key  1024

#openssl  req  -new  -key  ca.key  -out  ca.csr

(以上两步为产生证书的私钥与

CSR)

#cd  /etc/pki/tls/certs

#openssl  x509  -req  -days  365  -in  /etc/pki/tls/private/ca.csr   -signkey  /etc/pki/tls/private/ca.key  -out  ca.crt

(为产生自我签署的金钥) (以上步骤必须在特定文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将发生错误) 在执行上面3步过程中,会要求对你申请的证书进行基本的信息填写,按要求填写。

3. 修改apache ssl文件

#vi  /etc/httpd/conf.d/ssl.conf

进入文件,修改金钥以及金钥凭证正确路径(此路径即为上步生成的两个文件路径,必须保证路径的准确性),如下图

wKioL1aDaKbSaL88AABaARrANpM387.png

修改完成后保存退出,执行下面命令重启apache

#/etc/init.d/httpd  restart

4. 配置实现https的虚拟主机

#vi  /etc/httpd/conf/httpd.conf

进入文件后在文件的最后添加如下图所示内容后,保存退出。


注意:上图中所包含的文件路径需按照个人文件所在路径填写

5. 重启apache并查看https服务是否实现

#/etc/init.d/httpd  restart

验证过程如下:

在虚拟机的浏览器中输入https://localhost/svn/project1,浏览器会提示说你所登录的地址存在不安全因素,不用管它,直接添加信任(此时可以看到刚才申请的服务器证书),输入用户名与密码,登陆版本库。

也可以在命令行输入以下命令,查看是否配置成功

# svn  checkout

如果出现以下信息则证明配置成功

wKiom1aDaM7i_pgsAABlloD9m9o349.png

按照要求填写用户名与密码,连接版本库成功。


原文链接:

http://www.osyunwei.com/archives/9145.html

http://www.chinadmd.com/file/e6c6uerasausizxiwca6i6ai_3.html  



本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1729931

相关文章
|
Linux C语言 iOS开发
C语言结合AWTK开发HTTP接口访问界面
这样,我们就实现了在C语言中使用libcurl和AWTK来访问HTTP接口并在界面上显示结果。这只是一个基础的示例,你可以根据需要添加更多的功能和优化。例如,你可以添加错误处理机制、支持更多HTTP方法(如POST、PUT等)、优化用户界面等。
692 82
|
11月前
|
安全 Linux 定位技术
Curl访问Kerberos SPNEGO保护的HTTP资源
最后,记住,虽然Kerberos的魔法强大且久经考验,但它仍需你谨慎掌握。SPNEGO的舞步看似复杂,但一旦跳起来,你会发现自己在安全和便捷的旋律中翩翩起舞。而Curl,这一灵活敏捷的小工具,它的确有能力成为你施展这些魔法的得力助手。
317 14
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
632 26
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
936 29
探寻HTTP代理IP访问站点失败的背后因素
随着互联网发展,使用HTTP动态代理IP的人越来越多。但有时使用代理后仍无法访问站点,原因包括:1. IP失效;2. 网络质量差;3. 浏览器或程序设置错误;4. 需尝试其他代理商;5. 联系网站管理员;6. 不符合目标站点规范。选择高质量的代理服务商可提升访问成功率。
482 2
|
Linux 数据安全/隐私保护 Unix
【Linux账号和权限管理命令】
【Linux账号和权限管理命令】
333 0
|
Linux Shell 数据安全/隐私保护
|
8月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
962 1
二、Linux文本处理与文件操作核心命令
|
8月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
548 137
|
8月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1460 58

推荐镜像

更多