将 Github 代码库同步到 Dreamhost 网站

5

我想使用Dreamhost托管一个网站,使得可以通过Github编辑文件,并在将更改提交到Github后,实际网站会更新。如何最好地实现这一点呢?Dreamhost提供了Subversion的一键安装。对于git,它给出了谨慎的建议。我更喜欢使用git而不是Subversion。看起来同步git到Subversion是可行的。Subversion需要安装在哪个目录结构中,以便网站显示内容(而不是存储库)?有什么建议吗?


你有服务器的SSH访问权限吗? - Chronial
@Chronial 是的,在Dreamhost中可以使用SSH访问。 - ryanve
1
然后只需按照您链接的网站上给出的教程进行操作。在服务器上设置一个仓库并将其推送。首先确保已安装git。 - Chronial
@Chronial 那么我猜你的意思是SSH方法比Webdav更好。基本上,我想找出最不容易出问题的设置。post-receive钩子看起来就像我需要的实际显示。 - ryanve
1
不需要太多步骤,只需通过ssh连接到服务器,在一个空目录中运行git init --bare .命令,然后在客户端上运行git clone ssh://myserver/path/to/dir即可。完成了!(前提是服务器上已经安装了git) - Chronial
@Chronial 感谢澄清。我成功地使其工作,而不需要创建额外的存储库。请参见下面的答案。 - ryanve
1个回答

6

我使用simple-php-git-deploy使其工作。不需要额外的仓库。Githubpost-receive钩子在Github repo上通知位于服务器上的deploy.php文件以部署更改。只需编辑deploy.php中的几行即可。survitals.com在我将其推送到其Github repo时更新。

  • 对于Dreamhost,在deploy.php中定义的TARGET_DIR应为/home/user/example.com/
  • 它允许您在服务器上拥有未在repo中的文件。出于安全原因,我从Github中省略了deploy.php本身,因为它显示了SECRET_ACCESS_TOKEN
  • deploy.php中为SECRET_ACCESS_TOKEN使用URI-safe字符,因为它被用作查询参数。

我知道有点晚了,但我正在尝试在我的Dreamhost账户上使其工作。我已经设置好了deploy.php文件,当我访问它所在的URL时,它似乎是有效的。但是,当我将更改推送到GitHub时,服务器上的文件没有更新。你有什么想法吗?我已经放置了Web钩子。 - Andrew
@Andrew 如果您直接访问网站上的挂钩URL(/deploy.php?sat=...),是否会显示错误? - ryanve
这并不是原因,所以我感到困惑。还有其他可能出错的地方吗? - Andrew
可能只是缓存的问题吗? - Jochem Van Der Spek
我遇到了类似的问题。如果我直接访问deploy.php,它可以正常工作,但是Webhook会出现“服务超时”的问题。 - aslum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接