【问题标题】:Running PHP code using cron jobs使用 cron 作业运行 PHP 代码
【发布时间】:2015-03-14 09:39:33
【问题描述】:

我有一些我正在尝试使用 cron 作业来实现的可执行 PHP 代码。该页面发送了几封电子邮件。当我在我的 URL 栏中输入地址并加载页面时,它工作得很好(该 url 类似于 www.mysite.com/mypage.php),但由于某种原因,当我这样做时它不起作用一个 cron 工作。我已经仔细检查了权限并且文件是可执行的,所以这不是问题。我收到一封确认 cron 作业已完成的电子邮件,但本应由程序发送的电子邮件没有通过。这是我在 crontabs 中的代码:

SHELL= /bin/bash/
HOME = / 
MAILTO = "mymail@gmail.com"
* * * * * /usr/bin/php /usr/share/nginx/html/mypage.php

知道为什么这可能不起作用吗?


编辑权限:可能相关:我正在通过键入“sudo crontab -e”来编辑 cron 作业。我能够成功地设置另一个仅通过电子邮件向我发送文本的 cron 作业。但是,我尝试在 sudo 中设置另一个纯文本电子邮件 cron 作业(即键入“crontab -e”),但没有成功。我没有收到任何电子邮件。当我输入“crontab -e”时,我也遇到了一个错误,提示它无法读取 .nano_history 并且权限被拒绝,但我可以通过按 Enter 绕过它

【问题讨论】:

  • 如果您运行/usr/bin/php /usr/share/nginx/html/mypage.php,它是否可以从命令行正常工作
  • 完整的错误报告和登录
  • 有时命令行 PHP 可以是不同的版本或使用与 Web 服务的 PHP 不同的 php.ini。
  • @BrianGlaz - 不,它不起作用。我的 PHP 文件顶部有这个,但不确定在哪里查找日志:ini_set('display_errors', 1); error_reporting(-1);
  • 问题是 PHP 命令行解释器没有运行,在创建 cron 作业之前设置你的环境来运行它

标签: php cron crontab


【解决方案1】:

检查 wget 是否安装在您的服务器上。它应该是。然后使用 wget 从 cron 选项卡调用您的程序。这样您就不必担心从命令行调用 php。

wget http://999.999.99.9/hr/stats/send_stats.php?task=first

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2010-09-12
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    相关资源
    最近更新 更多