Запустите PHP Cron Job на macOS & MAMP - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь запустить задание cron в macOS и на сайте, размещенном локально с помощью MAMP.

Я пробовал разные варианты, но ни один из них не помог;см. ниже:

*/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?

1 Ответ

1 голос
/ 30 марта 2019

Руководство по 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

...