• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. Через Cron не записывался файл - решение!

Форумы Хостинг Через Cron не записывался файл - решение!
learnee
16.02.2014 00:10
хостинг: есть
домен: есть
Через Cron не записывался файл - решение!
Может кому пригодится... Перерыл кучу информации пока нашел!

Была проблема:
Создал простой скрипт php который записывал результат своего выполнения в файл на сервере.

При запуске через браузер - все работало.
При запуске через Cron - ошибка записи в файл!

Решение оказалось следующим:
- я использовал для абсолютного пути к папке с файлом: $_SERVER['DOCUMENT_ROOT']/file.txt
и для запуска из под браузера - это полностью рабочий вариант!

НО! Для работы из под Cron - необходимо указывать абсолютный путь РУЧКАМИ!

Правильный путь будет следующим: /home/user/site.com/www/file.txt

Разумеется указанный путь - это пример :)
Конкретно ваш путь вы можете посмотреть в настройках своего сайта: Домашняя директория

---
Когда скрипт запускается через веб, он обычно работает или в mod_php, или FastCGI(CGI).
При запуске через крон, он естественно работает в режиме командной строки CLI. Соответственно многие фичи, доступные в режиме модуля, здесь работать не будут
Илья
16.02.2014 12:48
хостинг: есть
домен: есть
1
Еще более простой способ использовать константу __FILE__, будет работать как в браузере, так и в cron:
dirname(__FILE__).'/output.log'
Плюс так же в том, что нет разницы, где находится скрипт и не приходится изменять код при перемещении файла в другую директорию.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города