我有一个使用shell_exec()
执行的PHP脚本。在脚本中,我需要检查脚本是否在我的开发机器上运行(在Windows上使用WampServer)或我的生产服务器(使用Linux),因为数据库凭据不同,脚本需要知道要使用哪组凭据。
因为脚本是在shell中执行的,所以$_SERVER
变量没有设置,我无法通过这种方法识别脚本运行的机器(这是我在其他脚本中的操作方式) )。
如何确定脚本在通过shell执行时运行的服务器?
答案 0 :(得分:1)
您只需查看服务器的主机名:
<?php
$hostname = php_uname('n');
答案 1 :(得分:1)
在Linux机器上运行PHP 5.3,在CLI中定义$_SERVER
。
尝试运行:
php -r "print_r(\$_SERVER);"
如果它没有在Windows框中定义,那么它也是一种区分它们的简单方法。
答案 2 :(得分:0)
我已经通过多种方式完成了这项工作,但假设您可以控制开发机器,则可以检查LIVE服务器上不存在的环境变量,或创建一个。例如: -
向Windows添加一个名为IAMDEV = 1的环境变量,然后
<?php
if ( get_env('IAMDEV') === FALSE ) {
// we are LIVE
} else {
// we are DEV
}
?>