1

我的 PHP 项目有 2 台服务器,一台用于生产,一台用于测试。

我想向测试服务器添加一个标志以在每个 PHP 文件中使用它。例如添加define('TEST', true)

如何将此定义放在“服务器级别”中?我的意思是它会在ini或 somthing 中定义,而不是在 PHP 页面中。

4

2 回答 2

2

您应该为此使用环境变量。

例如,在 Apache 中,您可以使用mod_envVirtualHost在测试服务器  的指令中设置环境变量:

SetEnv APPLICATION_ENV testing

对于您的实时服务器:

SetEnv APPLICATION_ENV production

然后您将在 PHP 中使用它:

$environment = getenv('APPLICATION_ENV');

if ($environment == 'testing') {
    // ...
}
于 2014-06-19T17:01:41.783 回答
-1

就个人而言,我喜欢使用$myname = `hostname`;

然后,如果主机名是我的测试服务器的名称,则将其置于测试模式。

存在替代方案,例如检查HTTP_HOST您是否正在处理子域。或者,如果您使用相同的域但使用另一个端口,您可以找出正在连接的端口。

基本上,任何使它们不同的东西都可以用作检查以使您进入测试模式。

于 2014-06-19T16:54:08.693 回答