簡體   English   中英

運行php腳本時,crontab無法找到所需的php文件

[英]crontab cannot find required php file when running a php script

我想讓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');

嘗試使用文件的絕對路徑...

require_once('/var/www/mws_products.php');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM