2009-06-26 2 views
0

Мне нужно запустить файл PHP каждую минуту, поэтому я попытался установить cronjob из CPanel но посылает почту с сообщением «не удалось открыть входной файл:»Как установить файл в хрон

Мой файл PHP внутри public_html/schoolerp/cron.php

я сделал:

/USR/местные/бен/PHP -f /public_html/schoolerp/cron.php

Я делаю что-то неправильно, скажите мне, правильно ли я его установлю, и если я ошибаюсь, пожалуйста, lp me correct it ...

ответ

1

Не уверен, что это полное исправление, но вы используете абсолютный путь для '/public_html/schoolerp/cron.php', если это, похоже, не очень корректно. Возможно, вы ищете относительный путь «public_html/schoolerp/cron.php» (обратите внимание на отсутствие предшествующих «/»). Вы можете просто использовать правильный абсолютный путь, начиная с корня файловой системы.

3
  • Используйте абсолютные пути
  • Убедитесь, что сценарий доступен, проверьте права доступа к файлу/директории на пути
  • хрон по умолчанию будет принимать все выход вашего сценария и отправить его в ваш адрес электронной почты

Вы можете перенаправить вывод своей команды в файл или/dev/null, чтобы предотвратить отправку электронной почты cron. Я бы предложил перенаправить локальный файл на будущие ссылки, это хорошо для отладки и когда что-то пойдет не так.

Я думаю, что-то вроде этого нужно сделать:

/usr/local/bin/php -f /public_html/schoolerp/cron.php > /logs/mylog.txt 2>&1 

Перенаправление в mylog.txt файл и добавьте stderror в стандартный вывод, так что оба stderror и стандартный вывод в файл журнала.

+0

Хороший тщательный ответ, намного более, чем у меня. +1 –

+0

Еще одна вещь, которая стоит отметить здесь, заключается в том, что вы можете устанавливать ошибки для отправки вам по электронной почте, позволяя STDERR проходить через слайдер (не перенаправляя его). [email protected] должен находиться в верхней части crontab. Если STDOUT считается ошибкой, просто не перенаправляйте. Намного приятнее, чем помнить, чтобы войти в систему и проверить журнал. –