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 #编辑,在最后添加以下代码
DAV svn
#SVNPath /home/svn
SVNParentPath /home/svn
# # Limit write permission to list of valid users.
#
# # 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
#
: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
进入文件,修改金钥以及金钥凭证正确路径(此路径即为上步生成的两个文件路径,必须保证路径的准确性),如下图
修改完成后保存退出,执行下面命令重启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
如果出现以下信息则证明配置成功
按照要求填写用户名与密码,连接版本库成功。
原文链接:
http://www.osyunwei.com/archives/9145.html
http://www.chinadmd.com/file/e6c6uerasausizxiwca6i6ai_3.html