
У меня установлена 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