【问题标题】:How to determine the environment in a cronjob如何确定 cronjob 中的环境
【发布时间】:2013-03-21 07:16:43
【问题描述】:

我遇到了关于如何在 cronjob 期间确定应用程序环境的问题。 我目前有 2 个环境:生产环境和测试环境。他们都使用自己的数据库。

我根据 URL 确定当前环境。例如:dev.domain.com 将环境设置为测试,domain.com 将其设置为生产。

这非常有效。但是,这不适用于 cronjobs。因为 cronjob 没有获得域。

我将如何解决这个问题并保持动态?

这是当前代码的样子:

if($_SERVER['SERVER_NAME'] == 'dev.domain.com' || $_SERVER['SERVER_NAME'] == 'domain.local') {
    define('ENVIRONMENT', 'development');
}else if ($_SERVER['SERVER_NAME'] == 'domain.com'){
    define('ENVIRONMENT', 'production');
}

提前致谢。

【问题讨论】:

    标签: php codeigniter cron environment


    【解决方案1】:

    您可以在 cron 作业中传递服务器名称。 例如,如果您当前的 php 命令看起来像。

    php a.php --uri="/foo"
    

    会变成

    SERVER_NAME=dev.domain.com php a.php --uri="/foo"
    

    【讨论】:

    • 这是我当前的 cronjob 命令的样子: /usr/local/bin/php /home/domain/public_html/index.php/cron/mailque 我将如何将服务器名称传递给它?但另一方面,我的环境是在 index.php 中设置的,而不是在我调用的 cronjob 函数中。所以我认为这行不通。
    • SERVER_NAME=dev.domain.com /usr/local/bin/php /home/domain/public_html/index.php/cron/mailque 应该可以工作。
    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 2019-09-15
    • 2019-09-15
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多