设为首页 收藏本站
查看: 742|回复: 0

[经验分享] 在Linux系统下Apache完美集成SVN(Yum安装版)

[复制链接]

尚未签到

发表于 2018-11-24 09:06:00 | 显示全部楼层 |阅读模式
  svn(subversion)是目前最流行的开源版本控制工具。使用apache集成svn比svn服务独立运行好处多多,最大的优点是使svn使用http80端口检出,防火墙可以少开放一个端口,减少服务器安全风险和降低维护成本。下面在CentOS6.0系统下通过yum安装的方式,介绍在linux下apache完美集成svn。
一、规划目录:
网站地址http://www.aiezu.com网站根目录/storage/web/aiezuSVN地址http://www.aiezu.com/svn/aiezuSVN数据仓库目录/storage/svn/aiezu二、安装apache:
  安装apache包:
yum -y install httpd #必须  
yum -y install mysql mysql-server php php-mbstring php-gd #可选安装
  创建站点根目录:
mkdir -p /storage/web/aiezu  建立基于域名的虚拟主机,vim /etc/httpd/conf.d/www.aiezu.com.conf添加以下内容:
NameVirtualHost *:80  

  
Options -Indexes FollowSymLinks
  
AllowOverride None
  
Order allow,deny
  
Allow from all
  

  

  
ServerAdmin admin@aiezu.com
  
DocumentRoot /storage/web/aiezu
  
ServerName www.aiezu.com
  
ErrorLog logs/www.aiezu.com-error_log
  
CustomLog logs/www.aiezu.com-access_log common
  

  启动apache和mysql服务:
service mysqld start  
service httpd start
三、安装和配置apache SVN模块:
  安装apache服务SVN模块mod_dav_svn:
yum -y install mod_dav_svn  
#会自动安装mod_dav_svn及其依赖包:mod_dav_svn-1.6.11-9,neon-0.29.3-2,pakchois-0.4-3.2,subversion-1.6.11-9
  建立svn数据仓库:
mkdir -p /storage/svn/aiezu  
svnadmin create /storage/svn/aiezu
  建立svn帐号并设置密码:
htpasswd -c /storage/svn/aiezu/conf/passwd svnuser  分配svn帐号权限:
[aiezu:/]  
svnuser = rw #设置aiezu数据仓库svnuser用户有读写权限
  配置svn数据仓库文件系统权限:
chown -R apache.apache /storage/svn/aiezu  
chcon -R -t httpd_sys_content_t /storage/svn/aiezu #selinux权限
  配置svn数据仓库checkout地址:
  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
  

  
DAV svn
  
SVNListParentPath on
  
SVNParentPath /storage/svn
  
AuthType Basic
  
AuthName “Authorization”
  
AuthUserFile /storage/svn/aiezu/conf/passwd
  
AuthzSVNAccessFile /storage/svn/aiezu/conf/authz
  
Require valid-user
  

  重新加载apache配置:
service httpd>四、配置svn post-commit钩子:
  当我们希望在像svn数据仓库提交新版本时,自动将更新同步到我们的网站,这时我们可以使用svn钩子,svn钩子必须放在svn数据仓库的hooks目录下,这里我们要添加是svn commit(svn提交)钩子post-commit:
  vim /storage/svn/aiezu/hooks/post-commit,添加如下内容:
#!/bin/bash  
export LANG=”zh_CN.UTF-8″
  
export LANG=”zh_CN.UTF-8″
  
export LC_CTYPE=”zh_CN.UTF-8″
  
svn update /storage/web/aiezu/ –username=svnuser –password=svnpass –non-interactive
  授予可执行权限:
chmod a+x /storage/svn/aiezu/hooks/post-commit  检出版本库:
svn checkout http://www.aiezu.com/svn/aiezu /storage/web/aiezu/五、常见错误及其解答:
  1、svn checkout(svn检出)时错误一:
The URI does not contain the name of a repository. [403, #190001]  解答:这是由于subversion.conf文件中SVNParentPath路径设置不正确引起的,SVNParentPath路径必须为svnadmin create生成数据仓库路劲的父目录,如上面建立数据仓库的命令为svnadmin create /storage/svn/aiezu,则SVNParentPath为/storage/svn。
  2、svn checkout时错误二:
Unable to connect to a repository at URL ‘http://www.aiezu.com/svn’  
Access to ‘http://www.aiezu.com/svn’ forbidden
  解答:svn数据仓库的SVN URL地址不正确,当subversion.conf中设置SVNListParentPath on时,SVN URL地址为SVNParentPath下的具体数据仓库,而不是SVNParentPath指定的目录。
  3、svn checkout时错误三:
Unable to connect to a repository at URL http://www.aiezu.com/svn/test’  
Could not open the requested SVN filesystem
  解答:svn数据仓库的SVN URL地址不正确,在SVNParentPath下找不到SVN URL指定的数据仓库。
  4、svn提交(svn commit)时出现如下错误:
post-commit hook failed (exit code 1) with output:  
svn: Can’t open file ‘/storage/web/aiezu/.svn/lock’: Permission denied
  解答:这是svn提交调用的post-commit钩子没有权限写/storage/web/aiezu/.svn目录引起的。apache集成的svn是使用apache用户调用post-commit钩子的,所以必须保证apache用户对.svn有写权限, 执行chown -R apache.apache /storage/web/aiezu就可以了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638876-1-1.html 上篇帖子: 关于apache 和 tomcat的区别 下篇帖子: apache3中日志轮循方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表