【问题标题】:Pushing from GitHub to a Web Server从 GitHub 推送到 Web 服务器
【发布时间】:2013-06-26 09:02:48
【问题描述】:

我想将我的所有网站都迁移到 GitHub,以获得所有明显的好处。我不是命令行的忠实拥护者,所以我喜欢 GitHub,因为它可以让我避免接触所有这些。在 GitHub 上设置存储库,然后将其与我的计算机同步很容易。我需要能够自动从 GitHub 推送到网络服务器,所以当我将本地更新到主分支时,将其与 GitHub 同步,它会在网站上上线。从谷歌搜索主题看来,大多数技术要么需要命令行,要么看起来相当复杂。我想用大约 15-20 个站点(其中许多托管在来自不同客户端的不同服务器上)来做到这一点。我想找到一个在我的技能范围内且每个站点不需要 2-3 小时的选项。有人知道最好、最简单的设置方法吗?

【问题讨论】:

  • 第一步是学习如何使用命令行。您将前往一些非常详细的架构,如果不使用命令行,您将不会走得太远。另外,请注意,您可能不会将某些文件放入 github(图像和文档可能不需要源代码控制)以及要部署的数据库,并且不会像魔术一样完成...我认为您应该寻找是一个部署工具
  • 无论使用 OSX,你都可以考虑这个基于 GUI 的非常方便的工作流程(我也将它用于一些 WordPress 的东西):eppz.eu/blog/push-git-to-ftp
  • 您可能想考虑使用像 heroku.com 这样的 PAAS,它支持通过简单推送进行部署,即 git push heroku master

标签: git github ftp


【解决方案1】:

复杂的部分是webhook on GitHub

每个 GitHub 存储库都可以选择在将存储库推送到时与 Web 服务器进行通信。

这意味着您的网站必须有一个进程来监听 GitHub 在收到提交时发送的那些 JSON 消息。

您可以看到这些侦听器的多个示例,例如 webhook-deployer,带有 auto.php(用于 php 服务器):

<?php

 // Prevent accidental XSS
 header("Content-type: text/plain");

 // Run the script 
 if ( $_POST['payload'] ) {
  shell_exec("./pull.sh");
}

那个 GitHub 项目推荐一个没有密码的 SSH 密钥,我首先同意(测试一下)。
但是,特别是对于私人项目,最好运行 ssh-agent 并管理受保护的 ssh 密钥密码。
作为亚诺斯comments

  • 如果 GitHub 存储库是公开的,那么他甚至不需要一个。
  • 如果 repo 是私有的,那么他需要它,但这不应该掉以轻心。如果可能,他应该使用关键代理。
    如果这太复杂了,那么他可以使用不带密码的专用 SSH 密钥来进行此部署,并且该密钥不应离开部署 PC。

【讨论】:

  • 为什么鼓励使用没有密码的 SSH 密钥?如果 GitHub 存储库是公开的,那么他甚至不需要一个。如果回购是私有的,那么他需要它,但这不应该掉以轻心。如果可能,他应该使用关键代理人。如果这太复杂了,那么他可以使用不带密码的专用 SSH 密钥来进行部署,并且该密钥不应该离开部署 PC。
  • @janos 非常好。我已经修改了答案并将您的观点包含在其中,以提高知名度。
【解决方案2】:

我知道这张票是旧的,但是对于那些以某种方式找到它的人,请查看dploy.io。这是一项专门用于将您的存储库从 GitHub/Bitbucket 部署到您的服务器的托管服务。它支持 SFTP/FTP/S3/Heroku/SSH 命令等等。

免责声明:我在 dploy.io 工作

【讨论】:

    【解决方案3】:

    您可能想看看这个 PHP 脚本:
    https://github.com/JohannesHoppe/easy-git-deploy
    (它会为您执行 git clone、git pull、git push)

    几年来,我使用该脚本管理我所有的 wordpress 安装。

    提示:如果您使用的是共享主机环境,那么脚本限制可能会中断第一次执行。在这种情况下,通过 SSH 登录并手动进行第一次克隆:

    git clone 'https://user:passwort@//github.com/user/repo.git'
    

    这里也可以手动确认SSH密钥指纹。

    第二个提示:您应该使用 .htaccess / .htpasswd 文件保护目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2015-09-20
      • 2011-09-25
      • 2014-12-31
      • 2019-03-07
      相关资源
      最近更新 更多