【发布时间】:2012-11-15 11:51:48
【问题描述】:
显然这是一个常见问题:我们有由 git 或其他 SCM 管理的 PHP Web 应用程序,并且(理想情况下)部署在 3 个以上应该非常相似的不同环境中。唯一的区别应该是特定配置,例如外部资源的寻址(例如:数据库主机、内存缓存等)。
以下是我见过或使用过的三种方法:
- 维护主机名数组 => 环境类型:
$hosts = array ('host1.example.com' => 'production', 'staging.example.com' => 'staging' ...) - 在 .gitignore(或其他 SCM 的等效文件)中有一个配置文件,其中包含要复制和编辑的示例版本
- 使用
http.conf在您的http.conf 中设置一个env_var:“SetEnv ENVIRONMENT dev”,然后在您的脚本中使用$environment = get_env('ENVIRONMENT');。
还有其他方法吗?我知道其中的每一个都有好处和陷阱——它们是什么?
【问题讨论】:
-
我认为使用 PHP 的商店没有 prod/stage/dev 差异化:p
-
非常有趣 =) 仅仅因为 PHP 是互联网的磁带并不意味着没有真正的编码人员会严格使用它。我敢肯定有人会……某处……
标签: php configuration release development-environment production-environment