我正在使用以下命令通过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?
另一个简单的解决
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)
使用它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)