前提是已经搭建好svn服务器并且可以通过svn://ip/proname进行访问。
1查看Apache服务是否安装。
查看是否有httpd: cd /etc/rc.d/init.d/ 查看httpd版本: httpd -v 使用rpm -qa | grep httpd查看是否已经安装了httpd 使用ps -ef | grep httpd查看httpd的进程 [root@instance-teosl6ad init.d]# httpd -v -bash: httpd: command not found [root@instance-teosl6ad init.d]# service httpd status httpd: unrecognized service2. 安装Apache服务。
yum install httpd 设置开机启动 chkcofing httpd on (centos7以上系统用:systemctl enable httpd.service) 启动Apache service httpd start (centos7以上系统用:systemctl start httpd.service) 结束:service httpd stop 查看Apache版本 httpd -version 或 httpd -v启动报错:
更改配置文件按: vi /etc/httpd/conf/httpd.conf 找到ServerName,添加 ServerName localhost:80注意可能端口占用:
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs [FAILED] [root@instance-teosl6ad init.d]#3.安装svn模块。
查看httpd是否已经安装的svn模块: ls /etc/httpd/modules/ | grep svn 安装svn模块: yum install mod_dav_svn 然后查看/etc/httpd/modules/ 目录下是否有对应svn模块 cd /etc/httpd/modules/ ls /etc/httpd/modules/ | grep svn4.创建账号密码认证。
htpasswd -cbm /data/svn/repo/conf/http_passwd test01 test01 htpasswd -bm /data/svn/repo/conf/http_passwd test02 test02 htpasswd -bm /data/svn/repo/conf/http_passwd test03 test03 -c:创建一个加密文件; -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上; -m:默认采用MD5算法对密码进行加密; -d:采用CRYPT算法对密码进行加密; -p:不对密码进行进行加密,即明文密码; -s:采用SHA算法对密码进行加密; -b:在命令行中一并输入用户名和密码而不是根据提示输入密码; -D:删除指定的用户。
5.设置svn关联的配置文件。
vi /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 /svn> DAV svn SVNParentPath /data/svn #当有多个仓库时需要用SVNParentPath这项配置。 # SVNPath /data/svn/repo AuthType Basic AuthName "Authorization SVN" AuthzSVNAccessFile /data/svn/repo/conf/authz AuthUserFile /data/svn/repo/conf/http_passwd Require valid-user </Location> <Location /svn>中的"/svn"表示我们的svn的访问URL为"http://ip/svn" DAV svn表示使用"mod_dav_svn"模块 dav是一种http 1.1扩展协议 mod_dav_svn只是该协议的一种应用 SVNParentPath /var/svn表示服务"http://ip/svn"请求时 使用"/data/svn"路径下相应的内容 AuthName 表示输入用户名和密码时的提示信息 AuthType 认证类型 这里我们使用基本的认证类型 AuthUserFile 表示认证文件的位置 我们待会创建它 LimitExcept 节点指示只对写请求需要用户认证<Location /svn>中的"/svn"表示我们的svn的访问URL为"http://ip/svn" DAV svn表示使用"mod_dav_svn"模块 dav是一种http 1.1扩展协议 mod_dav_svn只是该协议的一种应用 SVNParentPath /var/svn表示服务"http://ip/svn"请求时 使用"/data/svn"路径下相应的内容
6.赋予权限,启动。
chown -R apache:apache /data/svn/repo/ -R 会将我们新建仓库文件夹及其子目录下的所有文件递归的更改用户组 apache:apache表示我们要将文件夹及其子目录下的所有文件修改组拥有着为apache,用户为apache url 修改的文件夹路径启动:
centOS6: service httpd restart centOS7+: systemctl start httpd # 启动 systemctl status httpd # 查看状态 systemctl stop httpd # 停止 systemctl enable httpd # 开机自启动Apache错误日志监控:
tail -f /var/log/httpd/error_log
7.测试。
http://106.13.45.179:7777/svn/repo/
原:svn://106.13.45.179:3690/repo
用户名:test01 密码:test01