【问题标题】:Running PHP using Cron使用 Cron 运行 PHP
【发布时间】:2014-05-23 16:20:35
【问题描述】:

我有一个发送电子邮件的 PHP 文件。

现在我需要这个 PHP 文件每小时发送一次电子邮件。我在 Linux (Ubuntu) 上尝试了 Cron。

我有电话:

0 * * * * /var/etc/apache2/php(source of the php.ini file) /var/www/name_of_folder/mailer.php

但它不起作用。

谁能帮帮我?我是 Cron 工作的新手。

【问题讨论】:

    标签: php ubuntu crontab


    【解决方案1】:

    您需要使用 php 二进制文件,而不是配置文件。 ubuntu 上 PHP 命令行二进制文件的默认位置是/usr/bin/php,所以试试这个:

    0 * * * * /usr/bin/php /var/www/name_of_folder/mailer.php
    

    如果您没有 PHP 二进制文件(您可以通过 which php 找到位置),您可能需要安装 CLI 包

    sudo apt-get install php5-cli
    

    【讨论】:

    • 我正在努力尝试,我没有在 /usr/bin 中看到任何 php 二进制文件 :(
    • 我认为 PHP 应该在 ubuntu 的 PATH 中,所以除非你编译了特定版本的 php 来运行这个脚本,否则我认为你可以使用 0 * * * * php /var/www/name_of_folder/mailer.php
    • @RaggaMuffin-420 永远不要假设 cron 守护进程与您的用户具有相同的 PATH(或其他环境变量)。
    • 但是ubuntu服务器已经可以运行php文件了。我还需要安装另一个吗?
    • 如果你想从命令行运行 PHP 脚本,就像 crond 一样,你需要命令行界面。您不能为此使用 apache 模块。
    【解决方案2】:

    提供此脚本仅用于 CLI/cron 目的

    找出您的 PHP 二进制文件在哪里使用 which php

    复制输出。

    在您的 mailer.php 脚本的开头添加一个 shebang: #!/path/to/php

    chmod 你的 mailer.php 到 755

    那么你不需要在crontab中使用php二进制文件,只需要mailer.php脚本的路径:

    0 * * * * /var/www/name_of_folder/mailer.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 2012-06-27
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多