【问题标题】:Deploy with git pull on webserver on /var/www/vhosts在 /var/www/vhosts 上的网络服务器上使用 git pull 进行部署
【发布时间】:2011-04-05 09:44:19
【问题描述】:

我可以用root拥有的git文件创建而不使用root来推送吗?

我使用 git 用户推送网络服务器。但是 /var/www 归 root 或 www-data 所有,其他用户没有写权限。

我可以拉入另一个目录并使用“hook/post-receive”,但这个钩子仍然是由 git 用户执行的......

目前我登录网络服务器并执行 sudo git pull origin。但是,如果我能够从我的笔记本电脑上做一个 git pull 服务器,效率会更高。

谢谢

【问题讨论】:

  • 如果在 /var/www 中符号链接 /home/youruser/pubwww 之类的东西不是更好吗?这样,您就不必纠结于文件的所有权/权限。
  • 但是使用符号链接我仍然会遇到同样的问题吗?
  • 为什么?将符号链接指向 git 用户拥有的地图。然后以 git 用户的身份将您的文件推送到此地图。我不明白你怎么会以这种方式遇到权限问题。

标签: linux git deployment


【解决方案1】:

把我的评论放在这里作为答案,因为据我所知,它将完全解决问题:

/var/www 中创建指向git 用户拥有的地图的符号链接(例如/home/git/www)。然后将您的文件推送到此/home/git/www 地图。权限没有问题了。

【讨论】:

  • 当然也不错
  • @gagarine 谢谢!应该注意的是,您的解决方案消耗了两倍的存储空间,这对于现代硬盘大小可能不是问题,但仍然感觉像是一种浪费。使用符号链接解决方案,您就没有那个“问题”了。
【解决方案2】:

我的解决方案是通过 www-pub 组将所有文件提供给 git,每个人都具有读取权限 - 具有 MySQL 密码的设置文件除外。

我推送到/home/git/repository/project 并使用hook/post-receive 结帐到/var/www/project

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 2018-02-08
    • 2021-02-26
    • 2013-10-25
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多