显然这是一个常见问题:我们有由 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');
还有其他方法吗?我知道每一个都有好处和陷阱——那些是什么?