Как выполнить сценарий PHP с помощью крона?

Я пытаюсь выполнить a php файл через крон каждые 2 минуты, но это не работает. Мой crontab:

 */2 * * * * usr/bin/php /var/www/test/cron.php

Что я делаю неправильно?

2
задан 29 April 2015 в 16:17

2 ответа

Проверьте вывод which php и используйте полный путь для php (в моем случае /usr/bin/php5).

*/2 * * * * /usr/bin/php /var/www/test/cron.php

или всего

*/2 * * * * php /var/www/test/cron.php
<час>

Для разъяснения , значение по умолчанию $PATH для cron

PATH=/usr/bin:/bin

, можно проверить $PATH с тестовая запись ( Источник ):

* * * * * env > /tmp/env.output

Таким образом, файл

/tmp/env.output

создается.

необходимо будет удалить запись * * * * * env > /tmp/env.output впоследствии.

1
ответ дан 2 December 2019 в 02:57

Моя рекомендация состояла бы в том, чтобы поместить, называют сценарий с помощью стандартного веб-пути, таким образом, Вы не смешиваете пользователей и полномочия, например, вместо выполнения:

/usr/bin/php <script>

скорее сделайте:

/usr/bin/wget -q http://localhost/test/cron.php

Тогда необходимо удостовериться, что сценарий можно назвать только от localhost (f.e. использующий политику доступа Apache2).

Этот способ, которым сценарий крона будет всегда выполняться при том же пользователе как веб-сайт, который является хорошей политикой иметь в распоряжении.

2
ответ дан 2 December 2019 в 02:57

Другие вопросы по тегам:

Похожие вопросы: