Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
Панель управления
  • Русский
  • Українська
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  Vodafone
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

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


learnee
7 лет
0
Через Cron не записывался файл - решение!

Может кому пригодится... Перерыл кучу информации пока нашел!
Была проблема:
Создал простой скрипт php который записывал результат своего выполнения в файл на сервере.
При запуске через браузер - все работало.
При запуске через Cron - ошибка записи в файл!
Решение оказалось следующим:
- я использовал для абсолютного пути к папке с файлом: $_SERVER['DOCUMENT_ROOT']/file.txt
и для запуска из под браузера - это полностью рабочий вариант!
НО! Для работы из под Cron - необходимо указывать абсолютный путь РУЧКАМИ!
Правильный путь будет следующим: /home/user/site.com/www/file.txt
Разумеется указанный путь - это пример :)
Конкретно ваш путь вы можете посмотреть в настройках своего сайта: Домашняя директория
---
Когда скрипт запускается через веб, он обычно работает или в mod_php, или FastCGI(CGI).
При запуске через крон, он естественно работает в режиме командной строки CLI. Соответственно многие фичи, доступные в режиме модуля, здесь работать не будут

rudenko
7 лет
1

Еще более простой способ использовать константу __FILE__, будет работать как в браузере, так и в cron:
dirname(__FILE__).'/output.log'
Плюс так же в том, что нет разницы, где находится скрипт и не приходится изменять код при перемещении файла в другую директорию.

Участвовать в общении на этом форуме могут только зарегистрированные пользователи.