前提是已经搭建好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 service
2. 安装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 svn
4.创建账号密码认证。
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