【发布时间】:2016-04-03 03:57:25
【问题描述】:
情况: 作为开发人员,我想“克隆”我们的开发环境(在办公室服务器上),以便我们可以在本地使用它(例如,当没有/有限的互联网访问可用时)。我们决定试试 Vagrant。
我做了什么?
首先,我使用PuPHPet 创建了一个基本配置,包括 nginx、php(包括模块)、composer、git、memcached 等。你可以找到我的配置 here。我还为我们的website.dev 添加了一个 nginx 虚拟主机。这是我遇到的第一个问题。
我们对位置块使用了一些额外的配置设置。 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“安装”之前)创建/部署文件到虚拟机?或更通用(问题 2):如何将文件上传到 VM?
如果这完全不可行,请告诉我!这是我们创建本地开发机器的第一步,因此欢迎使用其他/更好的方法。
【问题讨论】: