使用http访问svn svn+Apache+nginx
之前介绍了如何 在Linux 搭建SVN服务 并且将代码从Windows中 VisualSVN 迁移至Linux SVN
但有2个小问题
1.服务端的账号密码是明文显示
2.客户端没办法知道有那些代码仓库
这篇就是解决这些问题
安装软件
前面已经安装了 subversion 就可以不用安装了
1 | yum install httpd |
配置
配置apache httpd
配置端口
默认是80 但nginx已经使用了80端口所以需要改一下
vim /etc/httpd/conf/httpd.conf
找到下面这行将80改动一下Listen 80
改成某个未使用的端口Listen 81
配置服务
使用httpd服务就可以不需要开启svn服务了,当然还是可以使用的
可以将/etc/httpd/conf.d/welcome.conf
删掉
添加svn的服务配置文件vim /etc/httpd/conf.d/subversion.conf
1 | <Location /> |
指定http访问路径 - SVNListParentPath on 开启父节点展示的解决问题2
- SVNParentPath /svn/repository svn仓库的父节点路径 将svn仓库都放在这个路径下面就可以使用了
- AuthzSVNAccessFile /svn/authz 公用svn认证 使用上一篇的文件 里面的账号需要 在password中有
- AuthzSVNAccessFile /svn/password 解决问题1 加密密码
加密账号密码
需要使用 htpasswd 工具 生成password文件
没有htpasswd可以使用httpd-tools安装yum install httpd-tools
htpasswd(选项)(参数)
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。
生成加密文件
在当前目录下生成一个 password文件,用户名zhou,密码:xxxx 默认采用MD5加密方式htpasswd -bc password zhou xxxx
追加用户或已经有zhou用户就是修改密码 需要输入密码htpasswd password zhou
删除用户htpasswd -D password zhou
查看
cat password
改动svn
创建一个仓库的父节点
1 | mkdir repository |
可忽略的步骤
因为上一篇有对svn代码仓库里面的conf/svnserve.conf 现在目录有改动了
需要修改一下才能使用
如果不在使用 svn:// 来访问可以不用下面的步骤
vim svnserve.conf
1 | [general] |
与nginx集成
vim /etc/nginx/nginx.conf
1 | server { |
nginx泛域名80端口匹配跳转
1 | server { |
启动
1 | service httpd graceful #优雅重启 |
使用 svn.zhouinfo.site 输入账号密码就可以查看到 /svn/repository目录下的所有仓库
可以关闭svn 将svn服务kill掉
1 | ps -ef | grep 'svn' |
下载
svn checkout https://svn.zhouinfo.site:/svnLearn --username zhouinfo --password xxx
注意
- Apache启动失败,
提示:httpd:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
1 | sudo vim /etc/httpd/conf/httpd.conf |
- Apache启动失败 端口占用因为nginx已经使用了443端口了
1
2
3(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
AH00015: Unable to open logs
和nginx集成时如果nginx开启了ssl需要将apache的ssl端口修改一下
1 | sudo vim /etc/httpd/conf/ssl.conf |
本文作者 : zhouinfo
原文链接 : http://blog.zhouinfo.site/2019/10/31/%E4%BD%BF%E7%94%A8http%E8%AE%BF%E9%97%AEsvn-svn-Apache-nginx/
版权声明 : 本博客所有文章除特别声明外,均采用 CC Apache License 2.0 许可协议。转载请注明出处!