包含PHP文件;不能在Cron PHP脚本(Ubuntu VPS)中工作


Including PHP files doesn't work in Cron PHP Scripts (Ubuntu VPS)

我使用的是Ubuntu 14.04 X64。

我正在用crontab -e:设置一个基本的Cron作业

* * * * * /usr/bin/php /var/www/html/test/test.php >> /var/www/cron/cron.log

这是/var/www/html/test/test.php:

<?php 
include "../test2.php"; 
?> 

和/var/www/html/test2.php:

<?php 
echo "hello world"; 
?> 

然而,什么也没有得到回应。但当我访问[domain]/test/test.php时,我确实看到了"你好世界"的回声。为什么我没有在/var/www/cron/cron.log中看到它?

PHP和cronjobs可能会一团糟,尤其是在包含其他文件时。在您的crontab中尝试以下操作:

* * * * * cd /var/www/html/test; /usr/bin/php test.php >> /var/www/cron/cron.log

尝试在php include中包含完整路径,并使其成为required而不是include:

<?php 
  require_once("/var/www/html/test2.php"); 
?> 

您还可以设置包含路径:http://php.net/manual/en/function.set-include-path.php

为什么不在include中使用绝对路径?

<?php
    include __DIR__ . '/../test2.php';
?>

您在cron 中写入了错误的目录

/usr/bin/php /var/www/**html**/test/test.php

测试中.php

/var/www/test/test.php

在www目录下有html目录吗?