Cron (PHP) не работает должным образом

У меня есть крон

0 21 * * * php /var/www/html/site/cron.php/batch 1>>/dev/null 2>&1

Однако это не работает.

Когда я пытаюсь

php /var/www/html/site/cron.php/batch

или же

/usr/bin/php /var/www/html/site/cron.php/batch

Это говорит,

«Не удалось открыть входной файл:»

Я вижу, cron.php рассматривает файл cron.php как папку и пытается открыть его. Так что дай мне ошибку.

Также попробовал

* * * * * nobody wget -O http://example.com/cron.php/batch

P.S: http://example.com/cron.php/batch работает, когда я получаю к нему доступ в браузере.

Обновить:
У меня было 755 разрешений на файл. После получения сообщения «Не удалось открыть входной файл:» я даже подумал, что разрешение файла было ошибкой.

Я все еще сталкиваюсь с проблемой

-1

Решение

Когда вы запускаете скрипт PHP из командной строки, вы не можете использовать дополнительные элементы pathname после имени скрипта. Разрешение ввода параметров в путь является функцией веб-сервера, она не работает с обычными путями.

php /var/www/html/site/cron.php batch

Затем скрипт должен получить batch параметр из $argv[1]не $_SERVER['PATH_INFO'],

Может быть, в начале сценария вы можете сделать:

if (!isset($_SERVER['PATH_INFO']) && isset($argv[1])) {
$_SERVER['PATH_INFO'] = '/' . argv[1];
}
3

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

Других решений пока нет …