首页 文章

无法使用cron运行php脚本

提问于
浏览
1

我有2个PHP脚本需要每隔几分钟运行一次,php本身很好,因为我可以通过在浏览器中输入 http://myfakesite.com/myphpfile.php 手动触发它 . 两者都应该工作 .

我对cron没有多少经验,但是我找到了crontab文件(我在VPN上使用Parallels Power Panel),并且它已经有了每天,每周和每月运行部件cron.hourly的工作 . 我将我的电子邮件地址添加到MAILTO字段,并收到一条消息,告诉我cron.hourly不是目录 - 即使它是(虽然它当前是空的) .

我还将自己的2个作业添加到此文件中,如下所示:

*/1 * * * * wget http://myfakesite.com/script1.php
*/5 * * * * wget http://myfakesite.com/script2.php

这些都没有被称为 . 在php脚本中,一旦调用脚本,我也有一行给我发电子邮件,因此我知道它正在工作,并且从未通过cronjob收到过电子邮件 . 如果我ssh到服务器并使用wget php工作并通过电子邮件发送给我确认 .

我也试过了

*/1 * * * * php http://myfakesite.com/script1.php

*/1 * * * * wget -O /dev/null http://myfakesite.com/script1.php>/dev/null 2>&1

没有运气 . crontab文件中的MAILTO从未向我发送消息,说运行脚本时出现问题,但很明显它没有这样做 .

任何人都可以帮忙吗?我不知道下一步该尝试什么 .

编辑:找到一些信息,说'not a directory'错误可以归结为损坏的crontab文件 . 所以我下载了它将信息复制到一个新文件并上传 . 'not a directory'错误消失了...完全正确 . 即使我告诉它寻找一个我知道的文件夹't exist like cron.myfakefolder I don'收到 Not a directory: /etc/cron.myfakefolder 电子邮件 . 用原始文件替换了我的新crontab文件,我仍然没有从cronjob获得任何反馈 .

编辑2:正如dAm2K和prodigitalson建议的那样,我尝试使用wget和php的绝对路径 . 两者都没有用,我已经仔细检查过usr / bin / wget和usr / bin / php的位置,以确保它们确实在那里 . 我还检查了var / log / cron和var / log / messages,两者都包含:

2002无法执行“下载”操作:请求文件“/ var / log / cron”一次性发送大 . 尝试以512KB的形式请求文件

不知道发生了什么事 . 正如我在编辑1中提到的,即使我故意添加错误的位置,我也不再收到错误电子邮件 . 这与日志文件中的错误有关吗?

此外,我已经检查了crond正在运行,并且根据'System Services'和'System Processes'它正在运行 .

2 回答

  • 1

    尝试使用cron的可执行文件的绝对路径:例如

    */5 * * * * /usr/bin/wget 'http://myfakesite.com/script1.php'
    

    代替

    */5 * * * * wget http://myfakesite.com/script1.php
    

    仔细检查/ var / log / messages或/ var / log / syslog日志文件,了解有关cron执行的详细信息,以及系统一般会发生什么 .

  • 1

    如果您的脚本位于同一服务器上,请尝试使用 php -q 执行它:

    */1 * * * * php -q pathToTheFile/script1.php
    

相关问题