在macOS和MAMP上运行PHP Cron作业

时间:2019-03-30 14:01:49

标签: macos cron mamp

我正在尝试在macOS和使用MAMP在本地托管的站点上运行cron作业。

我尝试了各种选择,但无济于事;请看下面:

*/1 * * * * php http://mylocalsite.com/cron/my_function

*/1 * * * * /usr/bin/curl –silent –compressed http://mylocalsite.com/cron/my_function

*/1 * * * * /usr/bin/curl --silent --compressed http://mylocalsite.com/cron/my_function

*/1 * * * * /Applications/MAMP/bin/php/php7.1.12/bin/php http://mylocalsite.com/cron/my_function > /dev/null 2>&1

*/1 * * * * wget --no-check-certificate -O- https://mylocalsite.com/cron/my_function >> /dev/null

当我在终端中运行以下命令时,它确实起作用:

wget --no-check-certificate -O- https://mylocalsite.com/cron/my_function >> /dev/null

我知道URL已执行我想要的功能,因为我已经直接在浏览器中对其进行了测试。

我做错了什么,应该如何在crontab中查验/运行指定的URL?

2 个答案:

答案 0 :(得分:1)

CodeIgniter手册建议可以通过命令行运行CodeIgniter。

他们编写以下脚本:

<?php
class Tools extends CI_Controller {

        public function message($to = 'World')
        {
                echo "Hello {$to}!".PHP_EOL;
        }
}

他们依次在服务器上执行以下脚本:

$ cd /path/to/project;
$ php index.php tools message

其中的工具表示控制器,并向其发送消息。

因此,在这种情况下,crontab条目将变为:

*/1 * * * * cd /path/to/project; php index.php tools message

在问题中概述的情况下:

*/1 * * * * cd /path/to/project; php index.php cron my_function

来源:https://www.codeigniter.com/user_guide/general/cli.html

答案 1 :(得分:0)

我想做的是:

  1. 确保您使用brew(brew install php@version(我使用php@7.4))安装了php
  2. 检查是否具有crontab,否则使用brew install crontab
  3. 安装
  4. 在终端中输入crontab -l,这将打开一个vim编辑器。如果您似乎无法输入任何内容,请按【{1】】键。然后开始输入以下命令: i
  5. */1 * * * * cd /path/to/project; php index.php,然后输入:,然后输入以保存并退出vim,使其成为wq
  6. 在终端中使用:wq检查cronjob

其他详细信息here(for crontab)here(for vim)