PHP包括不在Cron作业中工作

PHP包括不在Cron作业中工作,php,cron,include,Php,Cron,Include,我有一个PHP脚本,它在从浏览器运行时可以正常工作,但在作为cron作业(通过cPanel设置)运行时却不能正常工作。服务器正在运行Linux 我已将其缩小为包含声明: $include_path = dirname(__FILE__) . "/"; $wpconfig = $include_path . 'blog/wp-config.php'; include($wpconfig); 我也尝试过使用realpath(dirname(文件)而不仅仅是dirname(文件),并尝试包含“blo

我有一个PHP脚本,它在从浏览器运行时可以正常工作,但在作为cron作业(通过cPanel设置)运行时却不能正常工作。服务器正在运行Linux

我已将其缩小为包含声明:

$include_path = dirname(__FILE__) . "/";
$wpconfig = $include_path . 'blog/wp-config.php';
include($wpconfig);
我也尝试过使用realpath(dirname(文件)而不仅仅是dirname(文件),并尝试包含“blog/wp config.php”,但这没有什么区别

PHP脚本位于以下文件夹中:

/home2/USERNAME/public\u html/DOMAIN/tools/

我需要包含的文件位于该文件夹中,该文件夹比PHP脚本所在的文件夹低一级:

/home2/USERNAME/public_html/DOMAIN/tools/blog/wp-config.php

我认为在cron作业中应该使用绝对路径,但显然不行

我显然做错了什么事(或愚蠢),所以请有人帮我摆脱痛苦,给我指出正确的方向


谢谢

我在使用绝对路径从Cpanel运行cron脚本时遇到了几个问题(当包含时),最后改为以URL的形式执行,现在一切正常:

我的命令

wget -O /dev/null http://www.example.com/somescript > /dev/null 2>&1

我在使用绝对路径从Cpanel运行cron脚本时遇到了几个问题(当包含时),最后改为以URL的形式执行,现在一切正常:

我的命令

wget -O /dev/null http://www.example.com/somescript > /dev/null 2>&1

你的路径——绝对路径——是正确的。您需要一个绝对路径,因为cron作业的工作目录是文件系统根目录,而不是php脚本所在的文件夹。你做对了。问题似乎有所不同。有两件事需要检查:1。var_转储或回显路径,以便您可以查看它是否确实是您期望的路径。2.使用
require
而不是
include
,因为如果include失败,它将抛出错误。也许这个错误会给我们一些启示。3.这可能是一个权利问题。如果运行脚本的用户对目录或文件没有读取权限,则包含将失败。路径似乎正确,并且当我将包含更改为require时,未看到任何错误消息(这不是我所期望的)。您的路径(绝对路径)是正确的。您需要一个绝对路径,因为cron作业的工作目录是文件系统根目录,而不是php脚本所在的文件夹。你做对了。问题似乎有所不同。有两件事需要检查:1。var_转储或回显路径,以便您可以查看它是否确实是您期望的路径。2.使用
require
而不是
include
,因为如果include失败,它将抛出错误。也许这个错误会给我们一些启示。3.这可能是一个权利问题。如果运行脚本的用户没有对目录或文件的读取权限,则include将失败。路径似乎正确,并且当我将include更改为require时,没有看到任何错误消息(这不是我所期望的)。这对我很有效,因此感谢!这对我来说很有用,所以谢谢你!将来要记住的事情。