Forum Webscript.Ru

Программирование => PHP => Тема начата: Angel07 от 08 Мая 2007, 16:18:47

Название: запуск PHP-скрипта через cron
Отправлено: Angel07 от 08 Мая 2007, 16:18:47
Уважаемые господа!

Такой вопрос: нужно сделать запуск PHP-скрипта из cron-а каждый час с передачей ему параметров методом POST и возвратом результата по мылу.

Пробовал делать файл конфигурации для crontab:

MAILTO=mail@host.com
REQUEST_METHOD=POST
...

0 * * * * cat $HOME/txt.txt |/usr/local/bin/php $HOME/script.ph

Успешно его "импортирую" в crontab.

И сервер начинает каждый час возвращать письма от Cron Daemon с... ошибкой "No Input File Specified" :-(

Причем эта ошибка возникает только тогда, когда в конфигарации для crontab-а указана переменная REQUEST_METHOD=POST. Без этого приходят письма с выводом скрипта, запущенного без параметров.

Что я неправильно делаю, с чем связана ошибка и возможно ли успешное решение? Какой input file оно просит? :-)

Заранее _большое_ спасибо за помощь!

---
С уважением,
Андрей

P.S. Права доступа на файл скрипта: rwxr-x-r-x, на файл txt.txt - rw-r--r--. Команда cat $HOME/txt.txt в SSH успешно віводит содержимое файла, команда /usr/local/bin/php $HOME/script.php также успешно отрабатывает, соответственно, все файлы находятся...
Название: запуск PHP-скрипта через cron
Отправлено: Макс от 08 Мая 2007, 16:52:14
попробуй прописать полный путь до cat (/bin/cat например)
Название: запуск PHP-скрипта через cron
Отправлено: Angel07 от 08 Мая 2007, 16:55:02
ОК, спасибо, попробую
Название: запуск PHP-скрипта через cron
Отправлено: Макс от 08 Мая 2007, 16:56:28
Цитировать
Angel07:
Причем эта ошибка возникает только тогда, когда в конфигарации для crontab-а указана переменная REQUEST_METHOD=POST. Без этого приходят письма с выводом скрипта, запущенного без параметров.

про REQUEST_MODE не осилил. Что это за конфигурация кронтаба ?
Возможно в окружении под которым выполняется скрипт из крона нет переменной $HOME
Название: запуск PHP-скрипта через cron
Отправлено: Angel07 от 08 Мая 2007, 19:09:02
Извиняюсь, описался, я имел в виду REQUEST_METHOD - переменную среды,
передающую метод обращения к скрипту. В норме эту переменную для
скрипта устанавливает веб-сервер, а при "прямом" вызове из командной строки
приходится самим :-)

Кстати, сначала PHP при запуске из cron-а ругался, что, дескать, "PHP
cannot  be accessed directly" и требовал переменную среды REDIRECT_STATUS. Я поставил
REDIRECT_STATUS=200 OK Правильно ли я сделал?

А вообще, правильная ли у меня в принципе командная строка для запуска
скрипта с передачей ему содержимого файла на STDIN? Я уже сомневаться начал...

cat $HOME/txt.txt |/usr/local/bin/php $HOME/script.php

По поводу $HOME - в описании хостинга (Zenon) она есть и ей рекомендуют пользоваться. К тому же, я думаю,если бы ее не было, то и "прямые" командные строки с ее использованием не работали бы (через SSH)
Название: запуск PHP-скрипта через cron
Отправлено: Макс от 10 Мая 2007, 14:06:53
Цитировать
Angel07:
Кстати, сначала PHP при запуске из cron-а ругался, что, дескать, "PHP cannot be accessed directly" и требовал переменную среды REDIRECT_STATUS. Я поставил REDIRECT_STATUS=200 OK Правильно ли я сделал?

я думаю такие вопросы лучше задавать в support - только они знают как у них там все это настроено. Вообще похоже что пхп скомпилирован как cgi (а для работы того что ты хочешь сделать рекоменуется php-cli)

Сама команда правильная (ты же сам говорил что работает если в ssh ручками ее выолнить)
Но в команде есть некоторые зависимостит от окружения.
И скрипт, запускаемый cron-ом, может иметь другое окружение, чем то что у тебя в консоли