Я пытаюсь выполнить a php
файл через крон каждые 2 минуты, но это не работает. Мой crontab:
*/2 * * * * usr/bin/php /var/www/test/cron.php
Что я делаю неправильно?
Проверьте вывод 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
впоследствии.
Моя рекомендация состояла бы в том, чтобы поместить, называют сценарий с помощью стандартного веб-пути, таким образом, Вы не смешиваете пользователей и полномочия, например, вместо выполнения:
/usr/bin/php <script>
скорее сделайте:
/usr/bin/wget -q http://localhost/test/cron.php
Тогда необходимо удостовериться, что сценарий можно назвать только от localhost (f.e. использующий политику доступа Apache2).
Этот способ, которым сценарий крона будет всегда выполняться при том же пользователе как веб-сайт, который является хорошей политикой иметь в распоряжении.