Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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
从Crontab运行包含require_once()的PHP文件_Php_Cron_Crontab_Relative Path_Absolute Path - Fatal编程技术网

从Crontab运行包含require_once()的PHP文件

从Crontab运行包含require_once()的PHP文件,php,cron,crontab,relative-path,absolute-path,Php,Cron,Crontab,Relative Path,Absolute Path,我正在尝试从crontab运行一个php文件。php的目的是简单地向用户发送电子邮件。包括我的php框架的头文件。但是crontab的路径似乎有问题。我试着把它改成绝对路径。。请参见下面的测试用例 使用require\u一次(http://www.test.com/inc/header.php)并对命令行运行php-f test.php,结果如下: PHP Warning: require_once(): http:// wrapper is disabled in the server co

我正在尝试从crontab运行一个php文件。php的目的是简单地向用户发送电子邮件。包括我的php框架的头文件。但是crontab的路径似乎有问题。我试着把它改成绝对路径。。请参见下面的测试用例

使用
require\u一次(http://www.test.com/inc/header.php)
并对命令行运行
php-f test.php
,结果如下:

PHP Warning:  require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/user/public/test.com/public/deploy/cron/test.php on line 3
PHP Warning:  require_once(http://www.test.com/inc/header.php): failed to open stream: no suitable wrapper could be found in /home/user/public/trybe-ing.com/public/deploy/cron/test.php on line 3
PHP Fatal error:  require_once(): Failed opening required 'http://www.test.com/inc/header.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/user/public/test.com/public/deploy/cron/test.php on line 3
使用
require_一次('../../inc/header.php')
并对命令行运行
php-f test.php
,将成功执行php文件

但看看我的cron标签:

*/1 * * * * php /home/user/public/test.com/public/deploy/cron/test.php
查看/var/mail/中的结果,它返回以下错误:

Message 23:
From user@server  Thu Jun 25 13:13:02 2015
X-Original-To: user
From: root@user (Cron Daemon)
To: chrismoore@ibrahimovic
Subject: Cron <user@server> php /home/user/public/test.com/public/deploy/cron/test.php
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/user>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=user>
Date: Thu, 25 Jun 2015 13:13:02 +0100 (BST)

PHP Warning:  require_once(../../inc/header.php): failed to open stream: No such file or directory in /home/user/public/trybe-ing.com/public/deploy/cron/test.php on line 3
PHP Fatal error:  require_once(): Failed opening required '../../inc/header.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/user/public/test.com/public/deploy/cron/test.php on line 3
消息23:
从…起user@server2015年6月25日星期四13:13:02
X原始收件人:用户
发件人:root@user(Cron守护进程)
致:chrismoore@ibrahimovic
主题:Cron-php/home/user/public/test.com/public/deploy/Cron/test.php
内容类型:文本/纯文本;字符集=UTF-8
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
日期:2015年6月25日星期四13:13:02+0100(英国夏令时)
PHP警告:require_once(../../inc/header.PHP):无法打开流:第3行的/home/user/public/trybe-ing.com/public/deploy/cron/test.PHP中没有此类文件或目录
PHP致命错误:require_once():无法在第3行的/home/user/public/test.com/public/deploy/cron/test.PHP中打开所需的“../../inc/header.PHP”(include_path=”:/usr/share/PHP:/usr/share/pear)
crontab似乎不能像从命令行运行php文件那样运行它。我怎样才能让它工作

你能看到我做错了什么并提出解决方案吗


Thnnks

尝试使用
\uuuu DIR\uuuu
将文件包含在其完整路径中:


这样,就需要它的完整路径,并且可以从任何目录工作,而不必先更改到PHP文件的工作目录。

另一种方法是将crontab更改为

*/1 * * * * cd /home/user/public/test.com/public/deploy/cron && php test.php

你能显示你的文件夹结构吗?Oldskool的答案是正确的-顺便说一句,
require\u once()
总是需要一个文件路径而不是URL(除非你更改错误消息中提到的设置,我不推荐这样做)看看@jagad89我不擅长命令行。。有没有一个简单的方法向你展示我的文件夹结构?@Chris你试过Oldskool的建议吗?看起来很完美。我觉得我的脑袋漏水了。谢谢你的及时回复。我已经投了赞成票,并将其标记为答案。再次感谢。
*/1 * * * * cd /home/user/public/test.com/public/deploy/cron && php test.php