通过cron执行PHP - 未指定输入文件

Web*_*net 4 php cron

我正在使用以下命令通过cron执行PHP文件

php -q /home/seilings/public_html/dvd/cron/mailer.php
Run Code Online (Sandbox Code Playgroud)

问题是我有一个包含在执行中的文件,用于确定要加载哪个配置....如下所示:

if (!strstr(getenv('HTTP_HOST'), ".com")) {
    $config["mode"] = "local";
} else {
    $config["mode"] = "live";
}
Run Code Online (Sandbox Code Playgroud)

当应该加载LIVE配置时,cron正在加载LOCAL配置.我尝试使用http:// URL到文件而不是绝对路径,但它没有找到该文件.我是否需要更改命令才能使用其中的URL?

ina*_*abt 7

另一个简单的解决

cron的:

php -q /home/seilings/public_html/dvd/cron/mailer.php local
Run Code Online (Sandbox Code Playgroud)

PHP:

if (!empty($argv[0])) {
    $config["mode"] = "local";
} else {
    $config["mode"] = "live";
}
Run Code Online (Sandbox Code Playgroud)


pow*_*tac 5

使用它php_sapi_name()来检查脚本是否在命令行上调用:

if (php_sapi_name() === 'cli' OR !strstr(getenv('HTTP_HOST'), ".com")) {
    $config["mode"] = "local";
} else {
    $config["mode"] = "live";
}
Run Code Online (Sandbox Code Playgroud)

如果要在命令行上使用"live",请使用以下代码:

if (php_sapi_name() === 'cli' OR strstr(getenv('HTTP_HOST'), ".com")) {
    $config["mode"] = "live";
} else {
    $config["mode"] = "local";
}
Run Code Online (Sandbox Code Playgroud)