无法同时存档Gitolite(Git)和nginx Web服务器访问Web空间



起点:

  • Ubuntu 20.04
  • Gitolite(/home/git/(
  • Webspace/var/www/Webspace(通常由www数据所有:www数据(
  • Git用户(在www数据组中,也尝试过不在组中(

我想以git用户的身份更新网络空间,并将postreceive更新到www数据目录。在安装Gitolite之前,我已经将其存档,但它的工作方式似乎与以前不同(或者我缺少了一些东西(。明确一点:postreceive是在推送后执行的(Gitolite上通常不会这样(。。。这段时间也很难存档。

编辑:为了明确起见:我想归档Git和www数据可以访问和修改相同的文件


我尝试了什么:

  • chmod 777-R/var/www/webspace(在此之后git可以访问,但nginx返回403?(
  • 将Git用户添加到www数据组
  • chown www数据:git-R/var/www/webspace
  • chown git:www数据-R/var/www/webspace
  • chown git:git-R/var/www/webspace
  • chown www数据:www数据-R/var/www/webspace(组内有和没有git((有和没有777(
  • 手动执行后期接收(不允许操作(
  • 以root身份手动执行post-rereceive(好吧…当然可以,但这不是重点(
  • 。。。也许还有一些我可能错过的步骤

到目前为止我注意到的是:

  • 与Git相反,Gitolite使用-rw-------(如果我没记错的话(检查repo,也许这就是为什么它不适用于Gitolite,而是适用于Git

代码(不是说它很重要,只是列出所有内容(:

  • 张贴接收
#!/bin/sh
GIT_WORK_TREE=/var/www/webspace git checkout -f

也许我只是错过了什么,但请帮帮我。

尝试并遵循"添加其他(非更新(挂钩";以便Gitolite调用相关的postreceivehook。

  1. 如果%RC块内的rc文件中尚未存在该行,则将其添加到该文件中;如果已经存在并注释掉,则取消注释:

    LOCAL_CODE => "$ENV{HOME}/local",
    
  2. 将钩子放入该目录,位于名为"的子目录中;钩子/普通":

    # log on to gitolite hosting user on the server, then:
    cd $HOME
    mkdir -p local/hooks/common
    cp your-post-receive-hook local/hooks/common/post-receive
    chmod +x local/hooks/common/post-receive
    
  3. 运行gitolite setup使钩子传播到现有的repo(在此之后创建的repo无论如何都会得到它们(。

将用户(在我的情况下是git(添加到Web空间组(对我来说是www数据(

sudo usermod -a -G www-data git 

如果您以用户身份登录,请注销以重新加载组。

logout
#or
exit
#or
CTRL+A+D

(如果您想以该用户的身份重新检查组登录,并键入"groups"以查看用户所在的组(


确保网络空间归正确的组所有。对我来说:

sudo chown www-data:www-data -R /var/www/webspace

(如果你想重新检查这一点,你可以在目录中键入"ls-g"(


在我的情况下;后接收";有一点,因为签出后权限总是-rw-,所以这是我的"后接收":

#!/bin/sh
GIT_WORK_TREE=/var/www/webspace git checkout -f    #default line to checkout
chmod -R a+r /var/www/webspace     #added by me because of permission issues

为了方便起见;后接收";在repo目录中(/home/git/restores/srepo/hook/post-rereceive(。文档告诉你创建一个新文件夹(/home/git/local/specific hook/repo/post-rereceive(但他们告诉你自己命名(

*上面写的所有路径、名称、组和权限仅适用于我。它们可能因您的安装而异。


真正解决我问题的是什么:

  • 更改组后注销
  • 后接收中的更改权限(chmod(

相关内容

最新更新