在办公室服务器上克隆开发环境以在本地使用

时间:2015-12-29 09:25:04

标签: vagrant puppet puphpet

情况: 作为开发人员,我想“克隆”我们的开发环境(在办公室服务器上),以便我们可以在本地使用它(例如,当没有/有限的互联网访问时)。我们决定试试Vagrant。

我做了什么? 首先,我使用PuPHPet创建一个基本配置,包括nginx,php(包括模块),composer,git,memcached等。你可以找到我的配置here。我还为website.dev添加了一个nginx vhost。这是我遇到第一个问题的地方。

我们对位置块使用了一些额外的配置设置。一个rewrite,一个fastcgi_pass和一个include。这是不可用的所以我在网上搜索了很多,我发现我可以使用以下语句(更多是尝试/失败/重试)。

location_cfg_append:
  { rewrite: ".* /dispatch.php break", include: "fastcgi-params.conf", fastcgi_pass: "127.0.0.1:9000" }

第一个问题: 这确实有效,但是这样做是这样的吗?我不确定我是否应该直接编辑这个配置文件(由PuPHPet生成的文件)。

第二个问题: 我应该如何'上传'我要包含的fastcgi-params.conf文件?我没有找到在config.yaml中执行此操作的方法,但有一种方法可以运行一些脚本。现在我添加了一个可行的echo [contents] > /etc/nginx/fastcgi-params.conf。然而...

第三个问题: 配置VM时,将创建nginx配置。完成后,重新启动nginx。但是在那时,fastcgi-params.conf文件尚不存在(这是在配置之后创建的)。

当nginx重新加载时,这将失败,触发错误并且机器无法完成提供序列(因此它永远不会创建配置文件)。

我可以在下次启动时创建此文件(然后nginx将起作用),但这不是正确的方法。那么:我怎样(在nginx'安装'之前)创建/部署文件到VM?或更通用(问题2):如何将文件上传到VM?

如果这完全没有办法,请告诉我!这是我们创建本地开发机器的第一步,因此欢迎使用其他/更好的方法。

1 个答案:

答案 0 :(得分:0)

  

第一个问题:这确实有效,但是这样做是这样的吗?我不确定是否应该直接编辑此配置文件(由PuPHPet生成的文件)。

是的,我鼓励这一点。

  

第二个问题:我应该如何上传'我要包含的fastcgi-params.conf文件?

将其放在您的一个共享文件夹中。它可以在VM中使用,您可以通过这种方式引用它。

  

第三个问题

上述答案解决了这个问题。