ubuntu 上安装和配置Apache2+Subversion

目录

一、安装Apache2和SVN

二、Apache2设置

三、subversion配置 

四、创建仓库和设置权限

五、仓库备份和恢复


系统环境

Ubuntu Linux (20.04) + apache2 + Subversion(1.13.0)

一、安装Apache2和SVN

通过命令在线安装apache2和subversion

apt-get install apache2 libapache2-mod-svn subversion
二、Apache2设置

1.修改apache默认端口

我这里有冲突,所以将listen修改成8818。我不需要https访问,所有不需要安装和配置SSL相关。

vim /etc/apache2/ports.conf

 2.重启apache

systemctl start apache2

3.查看apache2状态并通过网页访问

systemctl status apache2

三、subversion配置 

1.验证SVN是否安装成功

svn --version

 2.创建svn根目录(版本库主目录)

mkdir -p /data/svn

3.svn与apache整合

修改dav_svn配置

vim /etc/apache2/mods-enabled/dav_svn.conf
<Location /svn> #/svn表示            http://hostname/svn/myproject
        DAV svn
        SVNParentPath /data/svn/
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /data/svn/passwd
        AuthzSVNAccessFile /data/svn/authz
        Require valid-user
</Location>

 验证用户名密码的数据文件 passwd

 验证用户的权限配置文件 authz

4.创建密码文件

生成账号(会要求输入2次密码,保存会加密)第一次需要加c,第二次就不要了

htpasswd -c /data/svn/passwd admin

5.创建权限文件

touch /data/svn/authz

可以参考下面的内容

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

[/]
admin = rw
!=

这里 [/] 表示根目录,所有仓库。admin = rw 表示admin账号有读写权限

6.启动SVN服务

svnserve -d -r /data/svn

启动SVN服务器,这里说明下:
-d:表示在后台运行
-r:指定服务器的根目录
停止服务器的命令:killall svnserve

7.查看进程

ps -aux | grep svnserve

四、创建仓库和设置权限

1.创建sourcecode仓库

svnadmin create /data/svn/sourcecode

2.修改当前仓库的配置文件

vim  /data/svn/sourcecode/conf/svnserve.conf 

去掉这几段话之前的#
anon-access = none    #关闭匿名访问
auth-access = write     #验证用户可写
password-db = passwd  #指向验证用户名密码的数据文件 passwd
auth-db=authz         #指向验证用户的权限配置文件 authz

3.授权仓库目录权限

chmod -R 777 /data/svn/sourcecode

4.网页访问

http://192.168.31.200:8818/svn/sourcecode/

会弹窗验证密码,验证刚刚的admin账号就行了

5.删除仓库

删除现有的仓库

rm -rf /data/svn/sourcecode
五、仓库备份和恢复

1.备份仓库

将现有仓库导出成dump文件

svnadmin dump /data/svn/sourcecode > sourcecode.dump

2.恢复仓库

先创建空白仓库,再将dump文件恢复到仓库上

cd /data/svn/

svnadmin create sourcecode

svnadmin load /data/svn/sourcecode < /data/svndump/sourcecode.dump

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/366957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven高级知识——分模块开发、继承与聚合

目录 一、分模块设计与开发 1.1 不分模块的问题 1.2 分模块设计 二、 继承与聚合 2.1 继承 2.1.1 继承关系 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 三、Maven打包方式&#xff08;jar、w…

数据结构—动态查找

动态查找介绍 1. 动态查找的引入&#xff1a;当查找表以线性表的形式组织时&#xff0c;若对查找表进行插入、删除或排序操作&#xff0c;就必须移动大量的记录&#xff0c;当记录数很多时&#xff0c;这种移动的代价很大。 2. 动态查找表的设计思想&#xff1a;表结构本身是…

只用一台服务器部署上线(宝塔面板) 前后端+数据库

所需材料 工具&#xff1a;安装宝塔面板服务器至少一台、域名一个 前端&#xff1a;生成dist文件&#xff08;前端运行build命令&#xff09; 后端&#xff1a;生成jar包&#xff08;maven运行package命令&#xff09; 准备&#xff1a; 打开宝塔面板&#xff0c;点击进入软…

element-ui link 组件源码分享

link 组件的 api 涉及的内容不是很多&#xff0c;源码部分的内容也相对较简单&#xff0c;下面从以下这三个方面来讲解&#xff1a; 一、组件结构 1.1 组件结构如下图&#xff1a; 二、组件属性 2.1 组件主要有 type、underline、disabled、href、icon 这些属性&#xff0c;…

OpenCV+ moviepy + tkinter 视频车道线智能识别项目源码

项目完整源代码&#xff0c;使用 OpenCV 的Hough 直线检测算法&#xff0c;提取出道路车道线并绘制出来。通过tkinter 提供GUI界面展示效果。 1、导入相关模块 import matplotlib.pyplot as plt import numpy as np import cv2 import os import matplotlib.image as mpimg …

虚幻UE 特效-Niagara特效实战-魔法阵

回顾Niagara特效基础知识&#xff1a;虚幻UE 特效-Niagara特效初识 其他四篇实战&#xff1a;UE 特效-Niagara特效实战-烟雾、喷泉、 虚幻UE 特效-Niagara特效实战-火焰、烛火、 虚幻UE 特效-Niagara特效实战-雨天、 虚幻UE 特效-Niagara特效实战-眩晕。 本篇笔记记录了使用空模…

Scrum敏捷开发企业培训-敏捷研发管理

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架。 这是一个两天的实训课程&#xff0c;面向研发管理者、项目经理、产品经理、研发团队等&#xff0c;旨在帮助学员全面系统地学习Scrum和敏捷开发, 帮助企业快速启动敏…

【循环结构·js】

变量命名原则 变量名由字母、下划线、$ 或数字组成&#xff0c;并且必须由字母、下划线、$ 开头。 变量名不能命名为系统关键字和保留字。 JS代码在sourse里面调试 document.write(str); /*在页面上输出变量 str 的值*/数据类型的分类 为什么要标识数据类型&#xff1a; 不…

【Java开发岗面试】八股文—微服务、消息中间件

声明&#xff1a; 背景&#xff1a;本人为24届双非硕校招生&#xff0c;已经完整经历了一次秋招&#xff0c;拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验&#xff08;主要是校招&#xff09;&#xff0c;包括我自己总结的八股文、算法、项目介绍、HR面和面试…

IT部门规划:构建高效、创新的技术引擎

序言 在当今这个信息化、数字化的时代&#xff0c;IT部门的重要性日益凸显。一个高效、创新的IT部门&#xff0c;不仅是企业稳定运营的保障&#xff0c;更是推动企业持续发展的核心动力。那么&#xff0c;如何规划一个优秀的IT部门呢&#xff1f; 一、明确IT部门的战略定位 …

window 安装 jenkins 编写脚本

set JAVA_HOMED:\RuanJianKaiFa\jdk\jdk11 set CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar; set Path%JAVA_HOME%\bin; java -jar jenkins.war 下载jenkins.war包&#xff0c;编写一个txt文档&#xff0c;把脚本复制进去&#xff0c;修改文件后缀为.bat文件…

SpringCloud服务通信

目录 Ribbon实现服务通信 创建工程product-basic-provider&#xff08;提供者&#xff09; 创建工程product-img-provider&#xff08;提供者&#xff09; 创建工程product-detail-api&#xff08;消费者&#xff09; OpenFeign实现服务通信 创建工程product-detail-api-…

Linux 磁盘空间占用率100%的排查

&#x1f4d1;前言 使用 Linux 操作系统时&#xff0c;可能会遇到磁盘空间不足的错误&#xff0c;这种错误通常会导致系统运行缓慢或崩溃。本文将介绍磁盘排查的方法。⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1…

Redis进阶(一):持久化

持久化 何为持久化&#xff1f; MySQL的事务有四个比较核心的特征&#xff1a;原子性、一致性、持久性和隔离性&#xff0c;这里的持久性和持久化说的是一个事&#xff0c;简单来说&#xff0c;数据存储在硬盘上就是持久&#xff0c;存在内存上那就是不持久&#xff08;重启之后…

FANUC机器人示教器的菜单变成了图标,如何改成列表的形式?

FANUC机器人示教器的菜单变成了图标&#xff0c;如何改成列表的形式&#xff1f; 如下图所示&#xff0c;开机后按下MENU菜单键时&#xff0c;发现原来的列表形式变成了菜单图标的形式&#xff0c;同时在按F1-F5键时&#xff0c;提示&#xff1a;HMI模式-键不可用&#xff0c; …

Github处理clone慢的解决方案

Github设置代理clone依然慢的解决方案 1、前提&#xff1a;科学上网 注意&#xff1a; 必须要有科学上网&#xff01;必须要有科学上网&#xff01;必须要有科学上网&#xff01;重要的事情说三遍&#xff1b; 2、http/https方案&#xff08;git clone时使用http&#xff09…

电脑怎么录屏?打造专业级视频内容!

随着科技的进步&#xff0c;电脑已经深入到我们的日常生活和工作中。而在这个数字时代&#xff0c;录制屏幕内容变得日益重要。无论是制作教程、分享游戏技巧&#xff0c;还是记录重要的演示&#xff0c;录屏都是一个不可或缺的功能。可是电脑怎么录屏呢&#xff1f;本文将深入…

LeetCode:138. 随机链表的复制之如何有效copy

自己复制的话&#xff0c;很容易写出来一个时间复杂度O&#xff08;n ^ 2&#xff09; 空O&#xff08;n&#xff09;的做法 我们可以参考基因的复制&#xff0c; 目录 题目&#xff1a; 实现思路&#xff08;基因复制式的copy&#xff09;&#xff1a; 官方快慢指针解法&…

跟着cherno手搓游戏引擎【18】抽象Shader、项目小修改

抽象&#xff1a; Shader.h: #pragma once #include <string>namespace YOTO {class Shader {public:virtual~Shader()default;virtual void Bind()const0;virtual void UnBind()const0;static Shader* Create(const std::string& vertexSrc, const std::string&am…

20240202在Ubuntu20.04.6下使用whisper.cpp的CPU模式

20240202在Ubuntu20.04.6下使用whisper.cpp的CPU模式 2024/2/2 14:15 rootrootrootroot-X99-Turbo:~/whisper.cpp$ ./main -l zh -osrt -m models/ggml-medium.bin chs.wav 在纯CPU模式下&#xff0c;使用medium中等模型&#xff0c;7分钟的中文视频需要851829.69 ms&#xf…