我的 PHP 项目有 2 台服务器,一台用于生产,一台用于测试。
我想向测试服务器添加一个标志以在每个 PHP 文件中使用它。例如添加define('TEST', true)
如何将此定义放在“服务器级别”中?我的意思是它会在ini
或 somthing 中定义,而不是在 PHP 页面中。
您应该为此使用环境变量。
例如,在 Apache 中,您可以使用mod_envVirtualHost
在测试服务器 的指令中设置环境变量:
SetEnv APPLICATION_ENV testing
对于您的实时服务器:
SetEnv APPLICATION_ENV production
然后您将在 PHP 中使用它:
$environment = getenv('APPLICATION_ENV');
if ($environment == 'testing') {
// ...
}
就个人而言,我喜欢使用$myname = `hostname`;
然后,如果主机名是我的测试服务器的名称,则将其置于测试模式。
存在替代方案,例如检查HTTP_HOST
您是否正在处理子域。或者,如果您使用相同的域但使用另一个端口,您可以找出正在连接的端口。
基本上,任何使它们不同的东西都可以用作检查以使您进入测试模式。