十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、说明
创新互联公司主营礼县网站建设的网络公司,主营网站建设方案,成都app开发,礼县h5小程序开发搭建,礼县网站营销推广欢迎礼县等地区企业咨询rhel6.4系统下搭建apache+svn
2、实现
1)在服务器上安装配置SVN服务;
2)SVN服务支持svnserve独立服务模式访问;
3)SVN服务支持Apache的http模式访问。
3、安装svn服务器
[root@reedoracle ~]# yum install -y subversion [root@reedoracle ~]# rpm -qa|grep subversion subversion-1.6.11-15.el6_7.x86_644、安装apache服务器
[root@reedoracle ~]# yum install -y httpd [root@reedoracle ~]# rpm -qa|grep http httpd-2.2.15-56.el6.centos.3.x86_645、配置SVN版本库
[root@reedoracle ~]# mkdir /svn [root@reedoracle ~]# svnadmin create /svn/reed #创建版本库命令 [root@reedoracle ~]# cd /svn/reed/ [root@reedoracle reed]# ll total 24 drwxr-xr-x 2 root root 4096 Apr 6 05:09 conf drwxr-sr-x 6 root root 4096 Apr 6 05:09 db -r--r--r-- 1 root root 2 Apr 6 05:09 format drwxr-xr-x 2 root root 4096 Apr 6 05:09 hooks drwxr-xr-x 2 root root 4096 Apr 6 05:09 locks -rw-r--r-- 1 root root 229 Apr 6 05:09 README.txt6、用户密码passwd配置
[root@reedoracle reed]# cd conf/ [root@reedoracle conf]# ll total 12 -rw-r--r-- 1 root root 1080 Apr 6 05:09 authz -rw-r--r-- 1 root root 309 Apr 6 05:09 passwd -rw-r--r-- 1 root root 2279 Apr 6 05:09 svnserve.conf [root@reedoracle conf]# vim passwd [root@reedoracle conf]# grep '^[^#]' passwd [users] admin=123 #管理员 reed=123 #普通用户 deer=123 #普通用户7、权限控制authz配置
[root@reedoracle conf]# vim authz [root@reedoracle conf]# grep '^[^#]' authz [aliases] [groups] #根目录下(即/svn/reed)管理员可读写,其它用户只读 [/] *=r admin=rw #public目录,任何用户都可以读写 [/public] *=rw #reed目录,只允许admin/reed读写,其他用户无任何权限 [/reed] admin=rw reed=rw *= #deer目录,只允许admin/deer读写,其他用户无任何权限 [/deer] admin=rw deer=rw *=8、服务svnserve.conf配置
[root@reedoracle conf]# vim svnserve.conf [root@reedoracle conf]# grep '^[^#]' svnserve.conf [general] anon-access = none #禁止匿名访问,设置为none。默认为read,参数:read,write,none password-db = passwd #指向用户信息文件 authz-db = authz #指向权限信息文件 realm = /svn/reed #每个SVN项目的认证名,会在认证提示里显示,建议写项目名称。 [sasl] [root@reedoracle conf]#9、启动SVN服务
[root@reedoracle conf]# svnserve -d -r /svn10、使用checkout导出文件
10.1、使用TortoiseSVN客户端测试
本地新建public、reed和deer三个目录(与authz的权限配置对应)
10.2、使用linux命令行测试
[root@reedoracle deer]# svn co svn://127.0.0.1/reed Authentication realm:11、配置svn支持http访问
通过 Http 协议访问版本库是 Subversion 的亮点之一。使用 Http 协议意味着只需要打开浏览器,输入 URL 即可轻松的浏览整个版本库。灵活通常带来复杂性,Http 方式相对于 svnserve 方式来说需要更多的配置。
由于 Subversion 需要版本化的控制,因此标准的 Http 协议不能满足需求。要让 Apache 与 Subversion 协同工作,需要使用 WebDAV(Web 分布式创作和版本控制)。WebDAV 是 HTTP 1.1 的扩展,关于 WebDAV 的规范和工作原理,可以参考 IETF RFC 2518。
为了使 Subversion 与 dav 模块通信,需要安装 mod_dav_svn 插件。
11.1、安装mod_dav_svn
[root@reedoracle conf]# yum install mod_dav_svn11.2、配置subversion.conf
[root@reedoracle conf.d]# grep '^[^#]' subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so #以上两行默认已添加,仅需添加以下内容11.3、创建账号密码认证文件
/svn/reed/conf/authz文件是svnserve独立服务器使用的认证文件,密码没有加密,明文显示。
/svn/reed/svnuser文件是Apache的http模式使用的认证文件,密码使用MD5加密。
authz和svnuser文件中,账号密码必须设置相同。
[root@reedoracle conf.d]# htpasswd -c /svn/reed/svnuser admin New password: Re-type new password: Adding password for user admin [root@reedoracle conf.d]# htpasswd /svn/reed/svnuser reed New password: Re-type new password: Adding password for user reed [root@reedoracle conf.d]# htpasswd /svn/reed/svnuser deer New password: Re-type new password: Adding password for user deer12、启动httpd服务
[root@reedoracle conf.d]# /etc/init.d/httpd start Starting httpd: httpd: apr_sockaddr_info_get() failed for reedoracle httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ OK ]13、测试
13.1、通过客户端访问,输入用户密码(passwd文件对应的用户密码)
13.2、通过浏览器访问(svnuser文件对应的用户密码)
14、附
为方便调试(需要频繁重启测试),共享个脚本给大家:
#!/bin/sh . /etc/profile svnid=$(ps -ef|grep 'svnserve -d -r'|grep -v grep|awk '{print $2}') if [ $svnid ];then kill -9 $svnid svnserve -d -r /svn echo "restart done..." else echo "not start,now begin to start..." svnserve -d -r /svn echo "start done..." fi另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。