通过cron作业执行PHP脚本时的不同行为
我有一个脚本,我们称之为mainfile.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调用脚本时,脚本的当前工作目录不同。(我假设它是/,根目录
<?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