git配置httpd服务-web_dav模式

Posted 烽之旋律

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git配置httpd服务-web_dav模式相关的知识,希望对你有一定的参考价值。

1,搭建httpd应用

2,修改httpd.conf文件

  注释 DocumentRoot "/data/httpd/htdocs"

  注释 <Directory "/data/httpd/htdocs"></Directory>
  结尾添加 Include /etc/httpd/conf.d/git.conf #引入git配置文件

  开放注释
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule dav_module modules/mod_dav.so

3,新建git.conf文件,配置为虚拟主机

<VirtualHost *:8081>
#---------------git permission--------------------
ServerName git.home.com
DocumentRoot /data/git

DavLockDB "/app/httpd2.4.2/var/DavLock"    #var这个目录需要新建并且修改权限,DavLock文件自动生成

<Directory /data/git/ >
  Dav On
  Deny from all
  AuthType Basic
  AuthName "plm git repository"
  AuthUserFile /etc/httpd/conf.d/passwd
  AuthGroupFile /etc/httpd/conf.d/group
  Require valid-user
</Directory>


<Directory "/data/git/spider.git/" >
  Allow from all
  Order allow,deny
<Limit GET>
  Require group readgroup
</Limit>
<Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require group writegroup
</Limit>
</Directory>


<Directory "/data/git/parent.git/" >
  Allow from all
  Order allow,deny
<Limit GET>
  Require group readgroup
</Limit>
<Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Require group writegroup
</Limit>
</Directory>

</VirtualHost>

4,新建group与passwd文件

group内容  

  readgroup: jack tom

writegroup: jack tom

passwd内容,密码使用htpasswd命令生成
  jack:$apr1$pEy4YuAu$KORJuHCgVB2dvA8e2aaPA0
  tom:$apr1$JpJBe660$P3lW.G5IC0zAiY/mqX4hK1

5,新建git仓库

$ mkdir myproject.git
$ cd myproject.git
$ git init --bare
这里需要注意--bare参数,表示是要生成一个"干净"的仓库,仅包含历史代码不包含工作代码。如果是希望初始化一个已存在的代码库,也可以类似如下命令替换最后一行git命令:

这样完成了一个仓库的初始化,但要客户端可以使用还缺少了一步——配置钩子(hook),执行下面命令:

$ cd myproject.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
$ ./hooks/post-update # 刚刚初始化完成必须手工执行一次
这样Git会在每次有update之后(post update)执行这个钩子(其实际是执行了命令:git update-server-info,可以通过vi hooks/post-update查看)

6,部署完成:如果不能正常pull与push,一般都是文件权限问题,请仔细查看httpd日志进行排查

  

  

以上是关于git配置httpd服务-web_dav模式的主要内容,如果未能解决你的问题,请参考以下文章

httpd篇

关于用两个网址访问一个服务器上不同站点

linux httpd安装及配置

Mac OS X 上的Apache配置

httpd的preforkworkerevent

dockce启动httpd+git