Как выполнить php-файл с помощью crontab?

Как выполнить php-файл с помощью crontab?

У меня установлена ​​Ubuntu с Lamp, и мне было интересно, что я должен ввести, чтобы запустить страницу PHP, скажем, в 2 часа ночи каждый день. Я все еще изучаю, как работает crontab, поэтому я не могу проверить, какой из них работает.

Итак, если у меня есть что-то подобное, как мне добавить PHP-страницу с параметрами?

30 18 * * * http://myip/mypage.php?action=do_something

Мне нужно ввести его так или с абсолютным путем?

30 18 * * * /var/www/mypage.php?action=do_something

решение1

Вам определенно следует использовать метод один. То есть

30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something

Так как это заставит файл быть извлеченным с помощью wget (программа загрузки файлов) через обычный веб-маршрут. Это означает, что когда apache обрабатывает запрос, он заставит php интерпретировать этот скрипт, и вам придется запустить скрипт.

Я почти уверен, что это также возможно выполнить с помощью метода 2, вызвав приложение php-cli и передав путь к вашему скрипту в качестве аргумента, но в большинстве случаев это не будет иметь никакого реального значения.

решение2

Команда, которую вы помещаете в cron, зависит от того, как на самом деле написан файл php. Если файл является скриптом на веб-сервере, то wget, как уже упоминалось, будет работать нормально. Обратите внимание, что в команде выше -O означает, что вывод будет записан в файл, -q - тихий, -t - для ограничения количества повторных попыток.

Однако, если скрипт php является скриптом оболочки, wget бесполезен. В этом случае файл должен быть исполняемым, и ваша команда cron будет выглядеть так:

30 18 * * * /usr/bin/env php /path/to/script

Связанный контент