PHP致命错误:require_once():需要打开失败

时间:2015-02-22 06:51:07

标签: php ssh cron crontab chmod

我只是想创建一个要从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

请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的问题很可能是cron守护程序的工作目录与手动执行时的工作目录不同。看看是否有效:

* * * * * cd /var/www/mosto.in/manual/ && /usr/bin/php gateway.php > /var/log/gateway.log 2>&1

如果是这样,我会考虑将cdphp调用移动到脚本文件中,然后从您的crontab中调用它 - 但这可能只是我:p

答案 1 :(得分:0)

当您通过shell / crontab执行脚本时,调用所需文件的最佳方法是在require()或require_once()语句中提供绝对路径。

require('/var/www/mosto.in/app/src/app.class.php');

希望这对你有用。