【问题标题】:PHP Cronjob does not executePHP Cronjob 不执行
【发布时间】:2012-08-07 06:48:19
【问题描述】:

我正在运行 Ubunutu Linux 服务器、PHP5、Apache2,并且无法通过 crontab 运行任何类型的 cronjob。

我使用编辑 crontab

crontab -e

我保存我要运行的文件:

*/5 * * * * php /home/user/public_html/crx/cronx.php

它保存得很好。我可以从控制台运行文件并顺利完成。我什至找不到该文件的任何现有日志。我检查了 cron 正在运行、停止和启动...没有变化。

当前的 php 文件只是一个简单的测试脚本,它在数据库中插入一行。

我检查了文件的权限,并且已读取和写入。我完全被难住了。我似乎无法通过 cron 运行任何东西。有什么我可以运行来测试权限的吗?

编辑 我也试过以下命令

          • /usr/bin/php /home/user/public_html/crx/cronx.php

我用 whereis php 和 which php 来定位并确认它都在正确的区域运行

【问题讨论】:

    标签: php linux cron


    【解决方案1】:

    * 的值太多了。

    另外,cron 可能没有正确设置 PATH 以使用 PHP。

    改为尝试:

    */5 * * * * /usr/bin/php /home/user/public_html/crx/cronx.php
    

    /usr/bin/php 是 PHP 的实际路径。在控制台中,您可以运行 which php 来查看您应该使用的 PHP 二进制文件的路径。

    编辑:为了排除故障,可以尝试以下几项操作:

    # see if cron is running just by having it create a file
    */5 * * * * touch /tmp/crontab-$(date +%s)
    

    另一种选择:

    将你的PHP脚本的权限设置为755,把开头改成:

    #!/usr/bin/php -q
    <?php
    // rest of script
    

    然后将您的 cron 选项卡更改为:

    */5 * * * * /home/user/public_html/crx/cronx.php
    

    我仍然不确定 cron 是问题还是 PHP 脚本的运行。

    【讨论】:

    • 我已经使用 PHP 的完整路径浏览了所有选项,发现它在 /usr/bin/php 中,但仍然不起作用。我注意到星星太多了,但那是我的帖子中的突出部分,我检查了 cron 并且它得到了正确的数量。有什么方法可以查看错误日志吗?或者发生了什么?
    • 如果还没有,让你的脚本通过 echo 输出一些内容。然后在您的 crontab 文件中添加MAILTO=usernameMAILTO=you@youremail.com,它应该会发送一封包含作业输出的电子邮件。您也可以尝试在脚本中创建一个文件,如touch('/tmp/cron-' . time()); 以确认其运行。
    • 嗯。将 MAILTO=my@email.com 添加到 cron 选项卡文件中,但没有通过。
    • 我想我解决了。我在控制台用户下编辑 crontab,当我 sudo crontab-e 它给了我一个不同的 crontab 文件。
    • 不...仍然没有电子邮件给我任何东西,没有任何迹象正在运行。
    猜你喜欢
    • 2015-11-30
    • 2023-03-20
    • 2016-12-31
    • 1970-01-01
    • 2018-06-30
    • 2017-12-01
    • 2015-04-17
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多