情况: 作为开发人员,我想“克隆”我们的开发环境(在办公室服务器上),以便我们可以在本地使用它(例如,当没有/有限的互联网访问时)。我们决定试试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?
如果这完全没有办法,请告诉我!这是我们创建本地开发机器的第一步,因此欢迎使用其他/更好的方法。
答案 0 :(得分:0)
第一个问题:这确实有效,但是这样做是这样的吗?我不确定是否应该直接编辑此配置文件(由PuPHPet生成的文件)。
是的,我鼓励这一点。
第二个问题:我应该如何上传'我要包含的fastcgi-params.conf文件?
将其放在您的一个共享文件夹中。它可以在VM中使用,您可以通过这种方式引用它。
第三个问题
上述答案解决了这个问题。