23

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

4

3 回答 3

8

复杂的部分是GitHub 上的 webhook

每个 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 密钥密码短语。
正如 janos评论

  • 如果 GitHub 存储库是公开的,那么他甚至不需要一个。
  • 如果回购是私有的,那么他需要它,但这不应该掉以轻心。如果可能,他应该使用关键代理人。
    如果这太复杂了,那么他可以使用不带密码的专用 SSH 密钥来进行部署,并且该密钥不应该离开部署 PC。
于 2013-06-28T14:47:21.823 回答
5

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

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

于 2014-02-05T03:19:09.720 回答
2

您可能想看看这个 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 文件保护目录。

于 2015-02-26T12:45:30.963 回答