php - crontab 在运行 php 脚本时找不到所需的 php 文件

标签 php linux cron

我正在尝试让 crontab 运行一个 php 文件,这是 cronjob

10 * * * * /usr/bin/php  /var/www/update/ranks.php >> /var/www/update/log/ranks.txt

但我一直收到错误消息,说所需的文件不存在

PHP Warning:  require_once(../mws_products.php): failed to open stream: No such file or directory in /var/www/update/ranks.php on line 2
PHP Fatal error:  require_once(): Failed opening required '../mws_products.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/update/ranks.php on line 2

当我从浏览器运行文件或进入文件目录并执行文件时,我没有遇到这个问题,例如cd/var/www/update/

ranks.php

<?php 
require_once('../mws_products.php');

echo "-------------------------------------------------------------\n";
echo date('d-M-Y H:i:s',time())."\n";
echo "Update Ranks\n";
$products->updateRanks();
$database->addUpdate("ranks", time());
echo "\n\n\n";
?>

文件夹结构

[folder] update
   |____ [file] ranks.php

[file]   mws_products.php

是什么导致了这个问题? (注意:我试过重启apache和服务器)

最佳答案

当您在根目录的 crontab 中运行时,相对于给定的根目录,../mws_pruducts.php 不存在。

有多种解决方案,这是其中之一:

define( 'ROOT', dirname(__FILE__) );  
require_once(ROOT . '/../mws_products.php');

关于php - crontab 在运行 php 脚本时找不到所需的 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332616/

相关文章:

php - 从服务器获取图像并显示它们

php - Laravel - 如果登录凭据错误,则在同一页面上显示错误

php - S3 上传后如何返回 Cloudfront url?

php - 如何在 Guzzle 中获取 Request 对象?

linux - Bash 认为输入不正确?

php - 如何改进我的算法以像 Twitter 那样查找热门话题

linux - Linux 中的串口路由

linux - 如何检测 Linux 服务器上的 ftp 上传完成?

php - 为什么 cron 不能正确执行我的 PHP 脚本?

linux - 检查文件是否存在 cron 作业