Как запустить php файл с использованием заданий cron

У меня есть расписание электронной почты, которое выполняется каждый день на php-странице, используя задания cron. PHP-код работает нормально, когда я запускаю страницу с помощью ссылки.

Теперь, когда я запускаю php script с помощью заданий cron, он также отлично работает, но когда я помещаю некоторый запрос, задания cron не поймут ссылку.

например: http://www.wetube.org/cron.php?id=01001 так что теперь, если я пытаюсь запустить это каждый день с помощью задания cron, он не работает.

Но если мы просто удалим запрос, он отлично работает. Вы знаете какой-нибудь код, который заставляет эту ссылку работать в работе cron?

Ответы

Ответ 1

Cron запускает команды, поскольку они будут запускаться через оболочку, поэтому запуск PHP будет использовать локальные пути.

Вам нужно использовать команду:

php /home/USER/public_html/cron.php

Или, если требуется включить строку запроса, вместо этого используйте cURL (если она установлена):

curl http://www.wetube.org/cron.php?id=01001

Возможно, вам стоит взглянуть на то, чтобы не подвергать свои скрипты cron интернету - переместите их за пределы своего веб-каталога, потому что, если кто-то обнаружит это, они могут постоянно перезагружать его, чтобы спамить ваши скрипты cron (то есть отправлять много писем)

Ответ 2

Я бы добавил хэш как

curl http://www.wetube.org/cron.php?id=01001&hash=cm349ucKuc023b2ynGyv23ycr23

и в php файле

if(isset($_GET['hash']) && $_GET['hash']=='cm349ucKuc023b2ynGyv23ycr23'){
....
stuff to do
....
}

* вы даже можете добавить определенную проверку времени/даты, когда она должна быть запущена.
* вы можете проверить IP
* генерировать sha512 (я бы рекомендовал) хеши как в cron, так и в php файле с той же солью и, возможно, даже временем, а затем проверить, совпадают ли они - хакеры не смогут воссоздать его, за исключением случаев, когда он каким-то образом получит ваш оригинал хэш-настройка