Почему моя задача cron работает в командной строке, а не в PLESK?

Я хочу настроить cronjob, который отлично работал в PLESK 9 на другом выделенном сервере, но не могу заставить его работать на моем новом выделенном сервере в PLESK 10. Я просто не могу понять, почему.

Некоторая информация: у меня есть PHP, работающий как модуль Apache, и:

где php говорит: php: usr/bin/php

И

usr/bin/php -q /var/pathtocronjob

отлично работает в командной строке. Однако, когда я настроил это в PLESK в «Запланированном задании», он просто говорит

-: /usr/bin/php: Нет такого файла или каталога

Я искал все, что могло бы мне помочь, но просто не могу найти никакой помощи. Кто-нибудь знает, почему это не работает, и, конечно... Как это исправить?


person Glooh    schedule 06.04.2011    source источник
comment
Попробуйте только php вместо полного пути, возможно, в Plesk есть внутреннее сопоставление для него...   -  person powtac    schedule 06.04.2011


Ответы (3)


Не забудьте включить первую косую черту /.

Вы должны заменить:

usr/bin/php -q /var/pathtocronjob

с участием

/usr/bin/php -q /var/pathtocronjob
person Michael Larsen    schedule 06.03.2012
comment
А если это не работает, как в моем случае, то путь к php не годится. Итак, что вам нужно сделать, это вызвать which php, эта команда сообщит вам правильный путь к php. - person Igor Jerosimić; 25.05.2013

Может быть какая-то chroot-оболочка для задач cron? Посмотрите Руководство администратора

person Michael Zarubin    schedule 07.04.2011
comment
По словам моего хоста, это как-то связано с разрешениями. Не совсем ответ, с которым я могу что-то сделать, но, по крайней мере, это направление. Любое предложение, где искать? - person Glooh; 08.04.2011

Вы не сможете получить доступ к более низким уровням, чем хостинг/пользователь, назначенные в Plesk. Это сделано для того, чтобы пользователь не вышел за пределы папок var/www/vhosts/domein.tld. Это встроенная защита, поэтому пользователь не может испортить сервер с помощью команд эксплойта, а просто остается в своей собственной песочнице.

Используйте короткий 'php' вместо 'usr/bin/php'

Например, команда переиндексации magento

    0 */3 * * * php -q httpdocs/shell/indexer.php reindexall

PS: многие обычные команды ssh не будут работать в поле команды crontab!

person madmus    schedule 24.10.2011