如何区分通过shell执行的PHP脚本中的服务器?

时间:2014-10-07 15:25:04

标签: php apache wampserver

我有一个使用shell_exec()执行的PHP脚本。在脚本中,我需要检查脚本是否在我的开发机器上运行(在Windows上使用WampServer)或我的生产服务器(使用Linux),因为数据库凭据不同,脚本需要知道要使用哪组凭据。

因为脚本是在shell中执行的,所以$_SERVER变量没有设置,我无法通过这种方法识别脚本运行的机器(这是我在其他脚本中的操作方式) )。

如何确定脚本在通过shell执行时运行的服务器?

3 个答案:

答案 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 
    }
?>