【问题标题】:run php-script with cron does not work用 cron 运行 php-script 不起作用
【发布时间】:2016-04-28 18:18:52
【问题描述】:

我有一个 php-email (phpmailer 5.2.14) 脚本,当我在 bash 中运行它时可以正常工作:

pi@schnickschnack: php /var/www/html/email.php

当我使用 cron (sudo crontab -e) 运行此脚本时:

*/1 * * * * root php /var/www/html/email.php

系统日志说...

Jan 22 08:53:01 Schnickschnack CRON[4482]: (root) CMD (root php /var/www/html/email.php)

...但是我没有收到邮件。 我有另一个与 crontab 配合使用的 php 脚本。此脚本将值从 phpmodbus 插入 mysql-db... 有没有人暗示为什么邮件脚本不能与 cron 一起使用?

【问题讨论】:

    标签: php cron crontab phpmailer


    【解决方案1】:

    试试

    * * * * * php /var/www/html/email.php
    

    否则,cron 会尝试执行命令“root”,这不是命令。

    【讨论】:

    • 我已将其更改为您的建议,但邮件脚本不起作用
    • 尝试使用 php 文件的完整路径(在大多数系统上,您可以通过在 shell 中执行“which php”来找到它)
    • 听弗朗茨说的(通常是/usr/bin/php),或者在/etc/crontab 中设置一个PATH 环境变量。
    【解决方案2】:

    当您使用 cron 运行时,所有常用的 $PATH 和 ENV 都不可用。 所以 CRON 不知道在哪里可以找到“php”。

    取决于您的安装 - 确定 PHP bin 的位置:

    which php
    

    在您的 cronjob 中使用生成的路径。例如:

    */1 * * * * /bin/php /var/www/html/email.php
    

    ** 除非有意,否则不要将 email.php 脚本留在任何简单地访问网络服务器的人都可能“无意”运行的地方。 email.php 肯定在脚本小子命中列表上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多