Crontab не работает на AWS ec2 Ubuntu Instance

Попытка настроить crontab для запуска php-скрипта на моем экземпляре Ubuntu AWS ec2:

* * * * * /usr/bin/php /var/www/html/tides/get_tides.php?id=PASSWORD

Не удается заставить его выполнить.

Сценарий выполняется, когда я запускаю в веб-браузере:

http://URL_NAME/tides/get_tides.php?id=PASSWORD

Когда я запускаю ‘which php’ в командной строке, он возвращает /usr/bin/php
Каталог / файл разрешения (приливы & get_tides.php): 755

Если я бегу sudo /usr/bin/php /var/www/html/tides/get_tides.php?id=PASSWORD в командной строке я получаю: Не удалось открыть входной файл:

/var/www/html/tides/get_tides.php?id=PASSWORD

Какие-либо предложения?

1

Решение

Нет прямого способа запустить PHP-скриптинг с ?id=PASSWORDВы можете настроить cronjob для запуска как

* * * * * /usr/bin/curl -o temp.txt http://URL_NAME/tides/get_tides.php?id=PASSWORD

или же

* * * * * /usr/bin/wget -q -O temp.txt http://URL_NAME/tides/get_tides.php?id=PASSWORD

Поскольку вы не отображали содержимое в get_tides.php, возможно, вы можете передать аргументы командной строки в скрипт PHP

php /var/www/html/tides/get_tides.php PASSWORD

и обновите php:

<?php
// $argv[0] is '/var/www/html/tides/get_tides.php'
$id = $argv[1];
?>
1

Другие решения

Проблема вызвана тем, что в моих скриптах cron не используются абсолютные пути:

<?php
$path = $_SERVER["DOCUMENT_ROOT"];
$file = "$path/cron-test.txt";

Я заменил $_SERVER["DOCUMENT_ROOT"] с /var/www/html

Команда Crantab: * * * * * /usr/bin/php /var/www/html/cron-test.php

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector