Вопрос
Я пытаюсь запустить тестовый скрипт с помощью crontab в Plesk.Файл php просто отправляет мне сообщение по электронной почте.
mail('me@somewhere.com','Cron Test','Test');
Мой путь к PHP — /user/bin/php.
Я ввел * в каждое поле, чтобы запускать скрипт каждую минуту с помощью следующей команды:
/usr/bin/php -q /usr/httpdocs/crontest.php
Однако сценарий не запускается.
Кто-нибудь может помочь?
Я, вероятно, упускаю что-то простое, я никогда раньше не использовал cron.
Любой совет ценится.
Спасибо.
Решение
Я бы начал с записи в файл журнала.например:
* * * * * /usr/bin/php -q /usr/httpdocs/crontest.php >> /a-location/crontest.log 2>&1
По крайней мере, это приведет к каким-либо очевидным ошибкам, например, невозможности найти php и т. д.
Другие советы
Я обнаружил, что при использовании пользовательского cron в Plesk возникает ряд проблем:
сначала я обнаружил, что вам следует ссылаться на сценарий из виртуального домена.Если ваш скрипт имеет абсолютный адрес /var/www/vhosts/domain.com/httpdocs/email-this.php, вам следует ссылаться на него как httpdocs/email-this.php в crontab.
Во -вторых, сценарий должен иметь очень специфические разрешения, но не уверен, кем они «должны быть». Apache: Apache - это все, что когда -либо работало для меня.Даже с установленными разрешениями на запись для группы пользователь все равно должен был быть Apache...странный.
В-третьих, самый простой способ провести тестирование — напрямую редактировать crontab, вместо того, чтобы возвращаться в Plesk каждый раз, когда мне нужно было внести изменения...Отредактируйте свой crontab следующим образом:
crontab -u [имя пользователя файловой системы] -e
В-четвертых, я никогда не мог заставить crontab записывать в файл журнала за пределами httpdocs (я пробовал статистику/logs/cron_log всеми возможными способами...ржу не могу...без кубиков).В итоге я просто добавил директиву MAILTO в начало файла crontab во время тестирования:
например:
MAILTO=you@domain.com
## * * * * * php -q httpdocs/cron.php
Также посмотрите это, если у вас Plesk 10 или выше: http://shaun.net/2011/09/solve-plesk-10-3-1-cron-issues/
я должен был сделать это
/usr/local/psa/bin/server_pref -u -crontab-secure-shell "/bin/sh"
чтобы этот (пример) работал:wget -O - http://www.вашдомен.com/cron.php