Linux下svn的安装以及在Apache服务下访问

简介: 最近安装SVN过程中遇到了很多坑,做一下记录。

最近安装SVN过程中遇到了很多坑,做一下记录。


阿里云服务器安装svn过程


手动安装SVN


本文以CentOS 7.2 64位系统为例,说明如何在CentOS 7.2上安装SVN。


1.远程连接Linux实例


2. 运行以下命令安装SVN。


yum install subversion


3.运行以下命令查看SVN版本。


svnserve --version

image.png


4.按以下步骤创建版本库:


i.运行以下命令创建目录。

mkdir /var/svn


ii.依次运行以下命令创建版本库。

cd /var/svn
svnadmin create /var/svn/svnrepos


iii.依次运行以下命令查看自动生成的版本库文件。

cd svnrepos
ls


image.png


image.pngimage.pngimage.pngimage.pngimage.png//

屏幕截图 2022-05-25 120828.png

iv.运行命令cd conf/进入conf目录(该SVN版本库配置文件)。返回结果如下:


  • authz:是权限控制文件。


  • passwd:是账号密码文件。


  • svnserve.conf:SVN服务配置文件。


v.按以下步骤设置账号密码:


a.运行 vi passwd。


b.按 i 键进入编辑模式。


c.在 [users] 块中添加用户账号和密码,格式:账号=密码,比如示例中的suzhan = redhat(注意等号两端要有一个空格)。


d.按 Esc 键退出编辑模式,并输入 :wq 保存并退出。

image.png


vi.按以下步骤设置权限:

a.运行 vi authz


b.按 i 键进入编辑模式。


c.在末尾添加如下代码(其中,r表示读,w表示写):


[/]
suzhan=rw


d.按 Esc 键退出编辑模式,并输入 :wq 保存并退出。

image.png


vii.按以下步骤修改svnserve.conf文件。


a.运行命令 vi svnserve.conf


b.按 i 键进入编辑模式。


c.打开以下几个注释(注意每行不能以空格开始,等号两端要有一个空格):


anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录


d.按 Esc 键退出编辑模式,并输入 :wq 保存并退出。

image.png


viii.运行以下命令启动SVN版本库。


svnserve -d -r /var/svn/svnrepos


ix.运行命令 ps -ef |grep svn 查看SVN服务是否开启。


如果返回结果如下图所示,表示SVN服务已经开启。

image.png


注意:运行以下命令停止SVN命令。


killall svnserve


以上内容来自点击打开链接


其实这样安装是没有问题的,然后你在svn的客户端输入svn://实例公网IP地址/资源库名 注:是svn://  而不是http:// 因为没有配置是Apache服务访问所以写成http://是访问不到的。


然后又把svn删掉,重新安装


需要Apache的服务访问,首先需要安装httpd的服务


yum-y install httpd


一般情况下,linux服务器是有httpd服务的,你可以检查下,如果没有则安装。


检查方法:vi/etc/httpd/conf.d/subversion.conf


安装完svn后看是否有该目录&文件,如果存在则不需要安装httpd了。


安装httpd的时候就开始报错了


因为服务器一开始有这个服务,可能是版本问题然后一直报错,这个时候,你要卸载掉Apache的服务


yum remove httpd


然后再卸载掉  yum remove apr


重新安装httpd  yum-y install httpd


查看是否安装成功 httpd -version


安装svn yum install subversion


查看是否安装成功 svn --version


安装mod_dav_svn yum install mod_dav_svn


安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。

$ find / -name mod_dav_svn.so


/usr/lib64/httpd/modules/mod_dav_svn.so


$ find / -name mod_authz_svn.so

/usr/lib64/httpd/modules/mod_authz_svn.so


创建svn仓库

$ mkdir /var/www/svn

$ svnadmin create /var/www/svn/test


配置权限

修改svn仓库的用户组为apache:

$ chown -R apache:apache /var/www/svn/test/


创建用户文件passwd:

$ touch /var/www/svn/passwd  #创建用户文件

$ htpasswd /var/www/svn/passwd admin  #创建用户admin


根据提示输入密码,输入两次密码,密码是经过MD加密的


在这可以看到用户加密后的密码


$ vim /var/www/svn/passwd

admin:$apr1$UCkPzZ2x$tnDk2rgZoiaURPzO2e57t0

创建权限文件authz:


$ cp /var/www/svn/test/conf/authz /var/www/svn/authz

$ vim /var/www/svn/authz

[/]

admin = rw #rw读写权限 r 只有读的权限,w是写的权限,不写,是没有权限


5. 配置httpd


$ touch /etc/httpd/conf.d/subversion.conf


$ vim/etc/httpd/conf.d/subversion.conf


<Location /svn>

   DAV svn

   SVNParentPath /var/www/svn

   AuthType Basic

   AuthName "Authorization SVN"

   AuthzSVNAccessFile /var/www/svn/authz

   AuthUserFile /var/www/svn/passwd

   Require valid-user

</Location>


6. 启动httpd服务


service httpd start


客户端使用http://192.168.220.121:8082/svn/test就可以访问刚才建立的svn仓库了。8082是自己配置的端口,默认是80端口,找到httpd.conf 修改里面的listener 80 的端口即可。


修改端口后的端口要对防火墙开启,不然访问不到。


vim /etc/sysconfig/iptables 添加下面这句


-A INPUT -p tcp -m tcp --dport 8082 -j ACCEPT


再重启防火墙服务:service iptables restart


安装参考点击打开链接

相关文章
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
11月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
726 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
11月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
1307 0
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
560 5
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
Ubuntu 安全 Linux
Linux这5款微型发行版,体积小+精简,比win7运行还快,值得安装
以上5款微型发行版体积小且精简,如果你有台旧电脑,不妨试试?
|
Linux 网络安全 数据安全/隐私保护
|
12月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1083 1
二、Linux文本处理与文件操作核心命令
|
12月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
790 137