Попытка настроить 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
Какие-либо предложения?
Нет прямого способа запустить 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];
?>
Проблема вызвана тем, что в моих скриптах 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