您好! 请登录 注册

服务器维护Linux下Apache完美集成SVN(Yum安装版)

发表时间: 2020-05-22 13:28:42

浏览: 28

艾锑无限15年聚焦中小企业IT外包服务,提供桌面运维,网管服务,电脑维护,网络维护,服务器维护,项目工程等IT外包一站式服务,全国服务热线: 4006507820

服务器维护LinuxApache完美集成SVN(Yum安装版)

 

如何做好服务器维护?北京艾锑无限科技与你谈谈IT人员必须知道的服务器维护信息

 

服务器维护小知识svn(subversion)是目前最流行的开源版本控制工具。使用apache集成svnsvn服务独立运行好处多多,最大的优点是使svn使用http80端口检出,防火墙可以少开放一个端口,减少服务器安全风险和降低维护成本。下面在CentOS6.0系统下通过yum安装的方式,介绍在linuxapache完美集成svn

服务器维护小知识一、规划目录: 网站地址    
网站根目录   /storage/web/aiezu  
SVN地址    
SVN数据仓库目录   /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

    ErrorLog logs/www.aiezu.com-error_log

    CustomLog logs/www.aiezu.com-access_log common

启动apachemysql服务:

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 reload

四、配置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 /storage/web/aiezu/

服务器维护小知识、常见错误及其解答:

1svn 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
2svn 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指定的目录。
3svn checkout时错误三:

Unable to connect to a repository at URL '

Could not open the requested SVN filesystem

解答:svn数据仓库的SVN URL地址不正确,在SVNParentPath下找不到SVN URL指定的数据仓库。
4svn提交(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就可以了。

 

以上内容为艾锑无限为大家提供的服务器维护小知识更多内容请关注:www.ruyike.com


咨询热线
15601064618

国际VPN

扫码立即获取

图片展示

© 2015-2017 www.bjitwx.com 京ICP备06011561号  北京艾锑无限科技发展有限公司 北京朝阳区酒仙桥路2号798艺术区音响南路A01座