Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过cron作业执行PHP脚本时的不同行为_Php_Cron_Nohup - Fatal编程技术网

通过cron作业执行PHP脚本时的不同行为

通过cron作业执行PHP脚本时的不同行为,php,cron,nohup,Php,Cron,Nohup,我有一个脚本,我们称之为mainfile.php,其中包含同一目录中的一个文件。我将其包括如下: <?php error_reporting(E_ALL); ini_set('display_errors', 1); require_once './myincludefile.php'; ?> 它运行没有任何问题。但是,如果将其转换为cron作业,我会收到以下消息(在我的邮件假脱机中): 有什么想法吗?这是因为通过cron调用脚本时,脚本的当前工作目录不同。(我假设它是/,根目录

我有一个脚本,我们称之为mainfile.php,其中包含同一目录中的一个文件。我将其包括如下:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once './myincludefile.php';
?>
它运行没有任何问题。但是,如果将其转换为cron作业,我会收到以下消息(在我的邮件假脱机中):


有什么想法吗?

这是因为通过cron调用脚本时,脚本的当前工作目录不同。(我假设它是
/
,根目录)

require\u一次更改为:

require_once __DIR__ . '/myincludefile.php';

将始终包含当前脚本所在的目录,而不是当前工作目录。这就是为什么构建相对路径很方便的原因。

请在
require_once./myincludefile.php'中将路径更改为绝对路径

并按以下方式运行此命令:

nohup php-q mainfile.php >/dev/null

通过cron运行任务时,必须始终在脚本中指定完整路径。
require_once __DIR__ . '/myincludefile.php';
nohup php-q mainfile.php >/dev/null