Автор Тема: запуск PHP-скрипта через cron  (Прочитано 6647 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Angel07

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.host-inform.ru/
запуск PHP-скрипта через cron
« : 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 также успешно отрабатывает, соответственно, все файлы находятся...
---
С уважением, Angel07

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
запуск PHP-скрипта через cron
« Ответ #1 : 08 Мая 2007, 16:52:14 »
попробуй прописать полный путь до cat (/bin/cat например)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Angel07

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.host-inform.ru/
запуск PHP-скрипта через cron
« Ответ #2 : 08 Мая 2007, 16:55:02 »
ОК, спасибо, попробую
---
С уважением, Angel07

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
запуск PHP-скрипта через cron
« Ответ #3 : 08 Мая 2007, 16:56:28 »
Цитировать
Angel07:
Причем эта ошибка возникает только тогда, когда в конфигарации для crontab-а указана переменная REQUEST_METHOD=POST. Без этого приходят письма с выводом скрипта, запущенного без параметров.

про REQUEST_MODE не осилил. Что это за конфигурация кронтаба ?
Возможно в окружении под которым выполняется скрипт из крона нет переменной $HOME
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Angel07

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.host-inform.ru/
запуск PHP-скрипта через cron
« Ответ #4 : 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)
---
С уважением, Angel07

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
запуск PHP-скрипта через cron
« Ответ #5 : 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-ом, может иметь другое окружение, чем то что у тебя в консоли
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28