我一直在使用 MediaTemple 的 GridService 作为几个相对轻量级的 PHP 站点的生产环境。设置测试和暂存环境的过程有点麻烦,并且会导致员工走捷径,所以我试图建立一个质量控制环境,该环境提供与 GridService 类似的环境,但允许我将它更紧密地连接到我们的自动化部署过程(在 GridService 中配置新环境需要您使用 Web 界面;mod_vhost_alias 只允许我们创建作为测试 url 子域的目录)。
我非常非常接近,但遇到了一个问题——当 PHP 作为 CGI 运行时,apache 会使用 SetEnv 自动将 REDIRECT_ 添加到我在 .htaccess 中设置的任何变量(记住,我正在模拟 GridService)。例如:
SetEnv HTTP_TEST_VAR "Some Value"
Run Code Online (Sandbox Code Playgroud)
echo getenv('HTTP_TEST_VAR'); // prints ""
echo getenv('REDIRECT_HTTP_TEST_VAR'); // prints "Some Value"
Run Code Online (Sandbox Code Playgroud)
这没什么大不了的(我们可以围绕它编写代码),除了它不会发生在 GridService 中,而且我真的更喜欢具有相同的代码路径(向代码添加切换逻辑会破坏所有的重点)我们所做的工作是从代码库中获取配置)。
对于背景的其余部分,我正在使用一个全新的(2 周前)(ve)实例运行 Ubuntu,从 apt 获取 apache 和所有依赖项,并使用来自<?php phpinfo() ?>
GridService 上的配置字符串构建 PHP(5.3.15), 减去 db4 支持。
我真的很感激任何帮助。谢谢!