【发布时间】:2010-12-17 19:24:12
【问题描述】:
我正在尝试找到一种维护开发环境和实际环境之间 PHP 配置差异的好方法。我知道在 Apache 运行脚本时如何处理差异(见下文),但在 在命令行上运行时不知道,例如通过 cron。
背景信息:
我所说的“配置差异”是什么意思? 像大多数代码商店一样,我们运行我们网站的非公开“登台”版本,之前我们会在其中测试代码它进入实时网站。我们使用 Subversion 并将实时网站作为“Trunk”,将“Staging”作为分支。如果文件的存储库版本差异很小,那么当代码从暂存到上线时,它会让生活更轻松。但显然,有些细节需要有所不同,例如数据库连接详细信息。
如何使用 Apache 解决配置差异
在 PHP 中,我们设置分支特定变量如下:
switch ($_SERVER['HTTP_HOST']) {
case 'ourstagingurl.com':
$dbPassword = "blahblah";
break;
default:
$dbPassword = "blahblah";
}
或者我们将以下内容放在与特定站点相关的 .htaccess 文件中:
php_value dbPassword "blahblah"
为什么我无法使用 CLI 解决配置差异?
当脚本在 CLI 上运行时,没有像 $_SERVER 这样的超级全局变量。我可以include 使用绝对路径的配置文件,但我怎么知道脚本是来自实时还是暂存?我可以传入一个指定环境的命令行参数,但我希望有更好的方法?
【问题讨论】:
-
只是一个不知从何而来的建议:让每个实时版本驻留在标签中怎么样?这样,您始终可以模拟以前的现场版本并将主干用作舞台。如果您愿意,请忽略此 OT 评论 :)
标签: apache configuration development-environment php