У меня есть крон
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 разрешений на файл. После получения сообщения «Не удалось открыть входной файл:» я даже подумал, что разрешение файла было ошибкой.
Я все еще сталкиваюсь с проблемой
Когда вы запускаете скрипт 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];
}
Других решений пока нет …