通过cron执行PHP - 未指定输入文件 [英] Execute PHP via cron - No Input file specified

查看:235
本文介绍了通过cron执行PHP - 未指定输入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm using the following command to execute a PHP file via cron

php -q /home/seilings/public_html/dvd/cron/mailer.php

问题是我有一个文件包含在执行确定要加载哪个配置....例如:

The problem is that I Have a file that's included in the execution that determines which config to load.... such as the following:

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

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

The cron is loading the LOCAL config when it should be loading the LIVE config. I've tried using the http:// URL to the file instead of the absolute path but it didn't find the file. Do I need to change the command to use a URL within it?

推荐答案

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

Use this php_sapi_name() to check if the script was called on commandline:

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

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

If you want to use "live" on the commandline use this code:

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

这篇关于通过cron执行PHP - 未指定输入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆