欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Linux安装svn服务器和权限配置

时间:2023-05-19
Linux安装svn服务器和权限配置_亲测成功 SVN简介

SVN是Subversion的简称,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理, 相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。适合中小公司的开发人员不多的项目使用,相比git管理工具更简单。

官方地址: https://tortoisesvn.net/

安装svn服务器

首先检查操作系统上面是否安装了subversion,一般centos操作系统都默认安装了此软件

服务器: 192.168.1.50安装svn服务为例

yum list | grep subversion 查看安装包rpm -qa subversion 查看是否安装yum install subversion -y 安装rpm -ql subversion 查看安装位置rpm -ql subversion | more 查看安装查看版本svnserve --versionsvn --version创建svn仓库目录mkdir -pv /data/svn/svnrepos设置为svn仓库目录svnadmin create /data/svn/svnrepos执行命令后会在该目录生成几个文件ls /data/svn/svnreposauthz 是权限控制文件passwd 是帐号密码文件svnserve.conf 是SVN服务配置文件启动svn服务svnserve -d -r /data/svn/svnrepos客户端连接:svn://192.168.1.50:3690输入用户名和密码就能访问了 默认端口 3690服务器默认使用 3690 端口号 , 要使用非默认端口 , 可以在启动命令后面加一个 --listen-port xxxx svnserve -d -r /data/svn/svnrepos --listen-port 3695 指定端口启动同时还可以为同一个服务器上不同的 SVN 项目设定不同的端口号 , 比如还建有另一个项目那么可以启动svnserve -d -r /data/svn/svnrepos2 --listen-port 3696svnserve -d -r /data/svn/svnrepos --config-file /data/svn/svnrepos/conf/svnserve.conf --listen-port 3690#--config-file后面跟全局配置参数文件killall svnserve 停止svn

配置用户名和密码还有权限

vim /data/svn/svnrepos/conf/passwd 添加用户名和密码abc=abc123lxd=lxdfh=fh123456ft=ft123456vim /data/svn/svnrepos/conf/authz 设置权限[/]  主目录下所有路径abc = rw 读写lxd = rwfh = rwft = rw* =  其他用户没有权限vim /data/svn/svnrepos/conf/svnserve.conf 服务配置anon-access = none 匿名用户不允许访问auth-access = write 有权限用户可读可写password-db = passwd 指定用户名口令文件名authz-db = authz 指定权限配置文件名realm = liang svn Repository #每个SVN项目的认证命名空间,会在认证提示里显示,建议写项目名称。

使用http协议连接svn

上面使用的是svn://协议,下面使用http协议连接svn

安装Apacheyum install -y httpd mod_dav_svn 安装httpd和svn模块httpd -versionls /etc/httpd/modules/ 查看是否有mod_dav_svn.so和mod_authz_svn.so模块,如果有,说明mod_dav_svn安装成功!vim /etc/httpd/conf.d/subversion.conf 修改配置文件(没有则新建),內容为:LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so DAV svn SVNListParentPath on SVNParentPath /data/svn AuthType Basic Satisfy Any AuthName "Subversion repos" AuthUserFile /data/svn/svnrepos/conf/http_passwd AuthzSVNAccessFile /data/svn/svnrepos/conf/authz Require valid-userSVNParentPath:支持多个相同父目录的SVN版本库。SVNPath:只支持一个主目录的SVN版本库,如果在主目录下面建新项目,则提示无权访问。设置权限chown apache:apache /data/svn/svnrepos -R设置Apache http访问用户名,按提示输入两次相同密码注意:这里的用户名密码要和svn里配置的一样。passwd和http_passwd文件中,账号密码必须设置相同。 ######################################htpasswd -cm /data/svn/svnrepos/conf/http_passwd abchtpasswd -m /data/svn/svnrepos/conf/http_passwd lxd htpasswd -m /data/svn/svnrepos/conf/http_passwd fthtpasswd -m /data/svn/svnrepos/conf/http_passwd fhhtpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。-c:创建一个加密文件;-m:默认采用MD5算法对密码进行加密;-D:删除指定的用户。-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;htpasswd -bc /data/svn/svnrepos/conf/http_passwd admin 123456service httpd start 启动Apache查看端口netstat -tpnlservice httpd restart service httpd status service httpd stop查看日志vim /var/log/httpd/error_log提示没有权限打开文件Permission denied: Could not open password file: /data/svn/svnrepos/conf/http_passwd 对于这个问题有人说关掉SElinux,个人没试过,不过肯定不好,影响主机安全性。执行如下命令即可:chcon -R -h -t httpd_sys_content_t /data/svn使用svn协议提交文件没有问题,但使用http提交文件时报错Can't open file '/data/svn/svnrepos/db/txn-current-lock': Permission denied 执行下面命令后 可以了chcon -R -t httpd_sys_content_t /data/svn/svnreposchcon -R -t httpd_sys_rw_content_t /data/svn/svnreposservice httpd restart 浏览器访问输入用户名和密码:http://192.168.1.50:80/svn/svnrepos/chkconfig --list httpd 查看开机启动项chkconfig httpd on  #设置开机启动vim /etc/httpd/conf/httpd.conf  修改Apache端口,默认是80Listen 3691修改端口后重启报错了 http://192.168.1.50:3691/svn/svnrepos/yum provides semanage 安装工具,可能提示没有插件包,用下面的命令yum install policycoreutils-python 安装semanage port -l|grep http 查看可以用的http端口semanage port -a -t http_port_t -p tcp 3691 增加一个端口semanage port -l|grep http

Nginx反向代理配置

最后用nginx做反向代理,使用外网访问 vim /data/apps/nginx-main/conf/nginx.conf location /svn { proxy_pass http://127.0.0.1:3691/svn; }/data/apps/nginx-main/sbin/nginx -s reload

外网访问svn:http://222.240.x.x:8088/svn/svnrepos/

参考链接:
https://blog.csdn.net/yanggd1987/article/details/38293843
https://www.cnblogs.com/taomylife/p/8026886.html
https://blog.csdn.net/tojohnonly/article/details/79765583
https://blog.csdn.net/iw1210/article/details/59543544
https://blog.csdn.net/u011781521/article/details/80200583
https://www.osyunwei.com/archives/9145.html

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。