目录
既然是完全离线安装,我们就要在有网的环境下将所需要的包下好,方便接下来的使用。
PS:安装的时候一定要注意路径,结合自己的环境,若路径不一样不要照搬照抄!安装的时候注意版本,版本不一样有可能会不兼容,在自己离线安装的时候就遇到安装的1.1.1版本和1.7.4版本的问题,结果采用http访问时无法访问
1、下载的包及地址
文件中已经包含了svn相关包和httpd相关包,地址如下
svn+apache(httpd) svn离线安装包,需要的自取
2、安装httpd相关包和svn相关包
rpm -ivh 包名字
http访问重要的就是要用到mod_dav_svn模块
ps:建议一个一个安装,一起安装会有个别包不能安装
3、操作步骤
3.1 创建svn仓库并授权给版本库
[root@localhost ~]$ mkdir -p /home/data/svn
[root@localhost ~]$ cd /home/data/svn
[root@localhost ~]$ svnadmin create repo
[root@localhost ~]$ chown -R apache:apache repo
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),也是我们要关注的配置文件
db目录:就是所有版本控制的数据存放文件
format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion监控锁定数据的目录,用来追踪存取文件库的客户端
dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据,刚开始新建时此目录没有
3.2修改当前仓库的配置文件
[root@localhost ~]$ vim home/data/svn/repo/conf/svnserve.conf
去掉这几段话之前的#
anon-access = none #关闭匿名访问
auth-access = write #验证用户可写
password-db = passwd #指向验证用户名密码的数据文件 passwd
auth-db=authz #指向验证用户的权限配置文件 authz
3.3有下面svn相关库,就证明安装httpd成功
[root@localhost ~]$ cat /etc/httpd/conf.modules.d/10-subversion
安装httpd完毕后,会在 /etc/httpd目录下看到安装好的httpd相关文件
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.modules.d
/etc/httpd/logs
/etc/httpd/modules
/etc/httpd/run
3.4 修改httpd配置
[root@localhost ~]$ cd /etc/httpd/conf
[root@localhost ~]$ vim httpd.conf
AllowOverride None 改完 AllowOverride All
[root@localhost ~]$ cd /etc/httpd/conf.d
[root@localhost conf.d]$ ll
autoindex.conf
userdir.conf
welcome.conf
README
3.5 创建subversion.comf文件
[root@localhost conf.d]$ mkdir subversion.conf
[root@localhost conf.d]$ vim /etc/httpd/conf.d/subversion.conf
添加如下语句
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location />
DAV svn
SVNPath home/data/svn/repo
AuthType Basic
AuthName " hello SVN user wudan! "
AuthUserFile home/data/svn/passwd
AuthzSVNAccessFile home/data/svn/authz
Require valid-user
</Location>
3.6 创建用户文件passwd
使用htpasswd创建用户,首次创建用户。位置和subversion.conf里的一样,给第一个用户添加密码时要加c,意思是创建这个文件,以后就不用加了
[root@localhost conf.d]# cd /home/data/svn
[root@localhost svn]# touch passwd
[root@localhost svn]# htpasswd /home/svn/passwd admin
New password:
Re-type new password:
Adding password for user admin
[root@localhost svn]# cat passwd
admin:$apr1$3jlXPfui$fVb9lAnF9ttbZ0U2khvMf1
htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
语法
htpasswd(选项)(参数)选项
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。参数
用户:要创建或者更新密码的用户名;
密码:用户的新密码。实例
利用htpasswd命令添加用户
#在bin目录下生成一个.passwd文件,用户名admin,密码:pwdadmin,默认采用MD5加密方式。htpasswd -bc .passwd admin pwdadmin
在原有密码文件中增加下一个用户
#去掉-c选项,即可在第一个用户之后添加第二个用户,依此类推。htpasswd -b .passwd test 123456
不更新密码文件,只显示加密后的用户名和密码
#不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。htpasswd -nb test 123456
利用htpasswd命令删除用户名和密码htpasswd -D .passwd test
利用htpasswd命令修改密码
#即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。htpasswd -D .passwd test
htpasswd -b .passwd test 123456
3.7 创建权限文件authz
[root@localhost svn]# cp /home/data/svn/repo/conf/authz /home/data/svn/
[root@localhost svn]# vim authz
该文件由[groups]配置段和若干版本库路径权限段组成
[groups]配置段格式:<用户组>=<用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号",“分隔,引用用户组时要使用前缀”@"
版本库路径权限段格式:
[<版本库名>:<路径>]如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:[/tmp]
版本库路径权限段中配置行格式有如下三种:
<用户名> = <权限>
<用户组> = <权限>
* = <权限>
其中,"*"表示任何用户;权限的取值范围为’’、‘r’和’rw’,’'表示对该版本库路径无任何权限,'r’表示具有只读权限,'rw’表示有读写权限。注意:每行配置只能配置单个用户或用户组。
####在最后面增加如下内容,[/] 是相对svn库src目录下的访问路径,可根据路径分配目录访问权限:
[/] admin = rw
* =
####如下是配置test用户只有对svn/test的目录,具有可读写权限
[/test] test = rw
* =
3.8 启动httpd
[root@localhost svn]# systemctl start httpd
最终访问 http://ip
4.安装成功后出现的问题
没想到由于公司储存的文件太大,而安装的仓库位置内存比较小,所以出现了内存不够的情况
[root@localhost svn]# df -h
采用了上述命令,看到了安装目录没有太多空间,所以本人就重新在内容大的地方创建了仓库,改了一下httpd配置的路径,完美解决问题。具体步骤为:3.1、 3.2 、3.5
离线安装的时候遇到了很多问题,诸如:版本不统一,httpd访问问题,httpd配置问题等等,希望其他朋友在离线安装的时候能参照本文快速安装。本人在离线安装出现问题,查询无果后也差点放弃,也是跌跌撞撞才成功的,最后希望大家都有所得