我只是想创建一个要从cron作业运行的文件,但是我收到了以下错误日志。
PHP Warning: require(../app/src/app.class.php): failed to open stream: No such file or directory in /var/www/mosto.in/manual/gateway.php on line 4
PHP Fatal error: require(): Failed opening required '../app/src/app.class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/mydomain.in/manual/gateway.php on line 4
我的gateway.php文件
set_time_limit(0);
require('../app/src/app.class.php');
如果我使用以下路径在ssh服务器上运行相同的文件,我感到困惑,该文件没有产生任何错误&工作得非常好。
*cd /var/www/mosto.in/manual/
*php gateway.php
crontab的
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /usr/bin/php /var/www/mosto.in/manual/gateway.php > /var/log/gateway.log 2>&1
请帮帮我。
提前致谢。
答案 0 :(得分:1)
您的问题很可能是cron守护程序的工作目录与手动执行时的工作目录不同。看看是否有效:
* * * * * cd /var/www/mosto.in/manual/ && /usr/bin/php gateway.php > /var/log/gateway.log 2>&1
如果是这样,我会考虑将cd
和php
调用移动到脚本文件中,然后从您的crontab中调用它 - 但这可能只是我:p
答案 1 :(得分:0)
当您通过shell / crontab执行脚本时,调用所需文件的最佳方法是在require()或require_once()语句中提供绝对路径。
require('/var/www/mosto.in/app/src/app.class.php');
希望这对你有用。