Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 job命令才能使PHP require()工作_Php_Cron - Fatal编程技术网

正确的Cron job命令才能使PHP require()工作

正确的Cron job命令才能使PHP require()工作,php,cron,Php,Cron,我在GoDaddy共享主机上。在我的cron-job-PHP脚本中,我使用require()包含一些其他文件。当我手动使用cron-job PHP脚本时(通过在地址栏中输入其url),它工作得很好,但是当执行cron-job时,cron脚本工作得很好,只是它找不到所需的文件 我有以下cron命令: /usr/local/bin/php -q /home/username/public_html/domainname/cron/script.php >/dev/null 2>&

我在GoDaddy共享主机上。在我的cron-job-PHP脚本中,我使用require()包含一些其他文件。当我手动使用cron-job PHP脚本时(通过在地址栏中输入其url),它工作得很好,但是当执行cron-job时,cron脚本工作得很好,只是它找不到所需的文件

我有以下cron命令:

/usr/local/bin/php -q /home/username/public_html/domainname/cron/script.php >/dev/null 2>&1
我读到一个选项是在require()中使用完整路径。另一个选项是修改cron命令,这是我想学习的。我的问题是如何修改上面的cron命令,以便cron脚本中的require()能够工作(而不使用完整路径)


谢谢。

这可能是最简单的修复方法

chdir(dirname(__FILE__)); //its been a while but I think __FILE__ works better with bind mounts and symlink but don't quote me on that.
//chdir(__DIR__);
我记不太清楚了,但我想有一次我不得不把它用于wordpress网站,我为它做了一个cron工作。如果我没记错的话,它有一些相关的目录,来自第三方插件等等

其他方面,您可以在文件之前使用
\uuuuuu DIR\uuuu

我从不使用相对目录,或者使用常量

 define('BASE_DIR', __DIR__); //or something else besides __DIR__
或者我只是使用
\uuuuu DIR\uuuuu
,从未遇到过此类问题。我喜欢确切地知道我的文件在哪里

require __DIR__.'/somefile.php';
require BASE_DIR.'/somefile.php';
这不是一个真正的PHP问题,更多的是cron如何调用PHP文件的问题,因为相对路径将与crontab文件的位置相对

夏季

也就是说,关于使用
\uuuu DIR\uuuu
我从自己的经验中知道,您无法控制第三方如何包含文件,因此
chdir
可能是这种情况下唯一可行的解决方案


希望有帮助。

这可能是最简单的修复方法

chdir(dirname(__FILE__)); //its been a while but I think __FILE__ works better with bind mounts and symlink but don't quote me on that.
//chdir(__DIR__);
我记不太清楚了,但我想有一次我不得不把它用于wordpress网站,我为它做了一个cron工作。如果我没记错的话,它有一些相关的目录,来自第三方插件等等

其他方面,您可以在文件之前使用
\uuuuuu DIR\uuuu

我从不使用相对目录,或者使用常量

 define('BASE_DIR', __DIR__); //or something else besides __DIR__
或者我只是使用
\uuuuu DIR\uuuuu
,从未遇到过此类问题。我喜欢确切地知道我的文件在哪里

require __DIR__.'/somefile.php';
require BASE_DIR.'/somefile.php';
这不是一个真正的PHP问题,更多的是cron如何调用PHP文件的问题,因为相对路径将与crontab文件的位置相对

夏季

也就是说,关于使用
\uuuu DIR\uuuu
我从自己的经验中知道,您无法控制第三方如何包含文件,因此
chdir
可能是这种情况下唯一可行的解决方案


<>希望有帮助。

<代码>不使用完整路径 >考虑为路径创建一些常量,并仅包含该文件。代码>定义('根路径','..')等。。。如果不使用
\uuuu DIR\uuu
,您也可以简单地使用它。因此,了解如何使用
require
(提示:不需要括号)。我唯一一次遇到这样的
\uuuuu DIR\uuuuu
问题是在符号链接或绑定装载文件夹中(不记得了)。但这不是PHP的错(就像你的HD中的虫洞一样…哈哈)@ArtisticPhoenix谢谢你的输入。使用DIR是一个不错的选择,但我仍然想学习如何编写正确的cron命令。对于C-Panel,这是正确的方法,对于非Cpanel,您只需将这一点去掉
/usr/local/bin/
-这意味着我总是使用
\uu DIR\uuuuuuuuuuuu
,所以我从来没有这些问题。@ArtisticPhoenix但是,正如我在问题中提到的,当我使用上面的命令时,它找不到所需的文件-包含在Con脚本中的带有要求()的..<代码>,而不使用完整路径考虑为您的路径创建一些常数,并且只包含该文件。代码>定义('根路径','..')等。。。如果不使用
\uuuu DIR\uuu
,您也可以简单地使用它。因此,了解如何使用
require
(提示:不需要括号)。我唯一一次遇到这样的
\uuuuu DIR\uuuuu
问题是在符号链接或绑定装载文件夹中(不记得了)。但这不是PHP的错(就像你的HD中的虫洞一样…哈哈)@ArtisticPhoenix谢谢你的输入。使用DIR是一个不错的选择,但我仍然想学习如何编写正确的cron命令。对于C-Panel,这是正确的方法,对于非Cpanel,您只需将这一点去掉
/usr/local/bin/
-这意味着我总是使用
\uu DIR\uuuuuuuuuuuu
,所以我从来没有这些问题。@ArtisticPhoenix但是,正如我在问题中提到的,当我使用上面的命令时,它找不到所需的文件-包含在cron脚本中的require()-文件。感谢您提供有关使用DIR的详细说明。我关于正确的cron命令的问题仍然存在。感谢您对使用DIR的详细解释。我关于正确的cron命令的问题仍然存在。