簡體   English   中英

盡管有日志,Crontab仍未運行PHP腳本

[英]Crontab not running PHP script, despite log

我以ec2-user身份登錄我的AWS服務器,但我嘗試使所有內容都以root身份運行,因此我使用sudo crontab -e命令管理crontab。 這是里面的東西:

* * * * * php /var/www/html/a*****/cron/cron.php
* * * * * php /var/www/html/d*****/cron/cron.php
* * * * * /usr/bin/php -f /var/www/html/k*****/cron/cron.php
* * * * * php /var/www/html/l*****/cron/cron.php

/var/www/html/k*****/cron/cron.php腳本如下所示:

<?php
include_once('../functions.php');
date_default_timezone_set("UTC");


// ==============================================

$content = file_get_contents("output.txt");

file_put_contents("output.txt", date('j M Y \a\t g:ia').
                  "\n\n---------------------\n".$content);

// ==============================================

performScheduledJobs();

sudo crontab -e視圖中的其他cron.php文件看起來都相同,除了// =====標記之間沒有位。

由於這些腳本應該每分鍾運行一次(按照sudo crontab -e設置,帶有五個間隔的星號* * * * * ),因此,我希望output.txt的當前時間戳每次打印一次(在UTC中)分鍾。 而是,它僅包含每次使用以下命令手動運行腳本時的(UTC)時間戳:

sudo php cron.php

該命令(當然是在/var/www/html/k*****/cron/目錄中)可以100%成功地工作。

當然,我的直覺是甚至沒有嘗試運行cron.php文件,但是當我在sudo vi /var/log/cron看到以下內容:

Mar 27 21:51:01 ip-172-***-***-184 CROND[32032]: (root) CMD (php /var/www/html/a*****/cron/cron.php)
Mar 27 21:51:01 ip-172-***-***-184 CROND[32033]: (root) CMD (php /var/www/html/d*****/cron/cron.php)
Mar 27 21:51:01 ip-172-***-***-184 CROND[32035]: (root) CMD (/usr/bin/php -f /var/www/html/k*****/cron/cron.php)
Mar 27 21:51:01 ip-172-***-***-184 CROND[32034]: (root) CMD (php /var/www/html/l*****/cron/cron.php)

正如我所說的, 運行sudo php cron.php命令sudo php cron.php ,所以crontab配置可能出了什么問題。

任何人都有想法嗎?

在crond中運行時,php不在路徑中。 您需要指定php可執行文件的完整路徑。 您可以通過運行which php來查找這是什么

這應該輸出的完整路徑,當您運行名為php的二進制php cron.php ,將是這樣/usr/bin/php如果更換php在crontab本應該運行正常。

暫無
暫無

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

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