如何使用 git 和 github 在开发服务器上设置多用户

Der*_*gan 3 git github

我正在研究灯应用。我们有 2 台服务器 (Debian) Live 和 Dev。

我经常在 dev main 上工作以添加新功能并修复错误。
当一切顺利时,我将相关代码 scp 到 Live 系统。数据库 (mysql) 对每台机器都是本地的。

现在这是非常基本的设置,我想稍微改进一下工作流程。我使用 git 和 github 进行版本控制。不可否认,我只真正使用过一个分支。他们可以是 3 位不同的开发人员,他们在不同的时间处理代码。我们都使用相同的 linux 用户名连接到开发服务器并在需要时直接编辑代码。我通常会在一天结束时提交并将代码推送到 github。

要记住的一件事是,在本地机器上运行此代码并不容易,因为有许多 apache 和子域配置无法在本地机器上运行,因此在开发服务器上而不是在本地运行很重要。

我需要创建一个新进程,因为我们现在需要有一个主干和一个重写大量代码的分支。

做这个的最好方式是什么。我应该为每个开发人员创建不同的 unix 登录名并在开发服务器上设置不同的工作区域以进行更改吗?例如

/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike

我的想法是他们可以从主分支拉取,然后在那里创建自己的分支并将其合并回来。我不确定这将如何与本地 git 和 github 一起工作。

我是否还需要创建不同的 github 用户帐户。

我想以“正确”的方式和未来的证据来做这件事,因为有很多潜在的开发人员,但我也不想让它复杂化。I 简洁优雅的解决方案是首选。

有什么建议或建议吗?

Mar*_*els 5

我们与大约 12 名开发人员一起使用的解决方案如下。它工作得非常好,并且可以进行灵活的设置,而无需再修改服务器的配置。由于网络延迟和服务器存储速度,它可能不会扩展到 40-50 个开发人员。

我们通过 Samba共享/var/www/树,因此 Windows 客户端可以使用其本地 IDE 和 VCS 客户端在 LAMP 服务器上进行编辑。没有人在 Linux 服务器上拥有帐户。

像这样创建你的目录结构:

/var/www/mysite.com/www/derek/
/var/www/mysite.com/www/paul/
/var/www/mysite.com/www/mike/
Run Code Online (Sandbox Code Playgroud)

在您的内部 DNS 中,创建一个通配符记录,将 **.dev* 指向您的灯服务器的 IP 地址。我在这里假设123.45.67.89

在 Apache 中,定义一个类似于以下内容的虚拟主机:

<VirtualHost 123.45.67.89>
   ServerName lamp.dev
   ServerAlias *.dev
   VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

重要的部分是 ServerAlias 通配符,它​​使这个 vhost 响应所有以“.dev”结尾的传入请求。另一个重要的是 VirtualDocumentRoot,它看起来很复杂,但也不是那么糟糕。它只是将传入的主机名分成几部分,并从这些部分中构造 DocumentRoot。您可以在此处阅读更多相关信息

现在,任何开发人员都可以访问http://derek.www.mysite.com.dev/并查看他们个人的 mysite 工作副本。

添加新站点、子域或开发人员只是在 Samba 共享上创建正确目录的一个例子。

为了部署到生产服务器,我建议您放弃 scp 并查看Capistrano和出色的集中式 Web 前端Webistrano。Capistrano 有点以 Rails 为中心,但它只需要几行代码就可以适应 PHP。Webistrano 提供了一个中央 GUI,您可以在其中直接从版本控制中部署或更新站点,只需按一下按钮。拥有易于编写脚本的部署,可以可靠地重复并在出现问题时回滚,不应被忽视。