С чего бы начать. В общем, события происходят на хостинге. У меня есть скриптик, который должен записывать в что-нибудь в файл. Я настроила крон, который обращается к скрипту раз в полчаса. Скрипт точно срабатывает, у меня в нём функция mail, которая присылает на почту сообщение, что скрипт сработал. Но данные в файлик не записываются. Но если я сама наберу этот же скрипт в браузере, он тоже срабатывает, и тогда данные в файлик записываются. Что мне делать? Может, нужно права на файлик txt изменить? Но я итак настроила их на чтение и на запись. Что тогда не так? Да, и ещё вопрос: мне нужно права для владельца или для группы настраивать? Я кто, владелец или группа?
Крон и вебсервер могут работать под разными пользователями. Выясни достоверно где какой используется и в какой он группе. Добавлено спустя 9 минут 25 секунд: Другое отличие связано с не с правами, а с тем что является "текущей папкой", относительно которой ты что-то указываешь при открытии файлов, инклудишь и т.д. При веб-доступе текущая папка это папка скрипта с точкой входа. При консольном вызове текущая папка это место откуда работает вызывающий процесс. Cкорее всего это домашняя папка пользователя. Используй константу __DIR__ чтобы точно указать от какой папки ты "танцуешь". viewtopic.php?t=54114 http://phpfaq.ru/newbie/paths p.s. для отладки обрати внимание на функции getcwd() - получить текущую директорию и chdir() - установить текущую директорию. а также убедись, что getcwd() не обязательно совпадает с константой __DIR__.
Ты всё прочитала, что я написал? Добавлено спустя 1 минуту 48 секунд: Когда что-то идёт не так, бери в зубы отладку и копай: phpfaq.ru/debug Читай логи. Пиши логи. Проверяй всё, что сможешь придумать. Мать Тереза уже умерла, надеяться не на кого.
Потому что обижают маленьких. А решение — абсолютный путь к файлику txt Добавлено спустя 51 минуту 48 секунд: Но путь пришлось прописать от руки, потому что при использовании крона $_SERVER['DOCUMENT_ROOT'] оказывается пустым... Кто-нибудь знает, почему?
Кто-нибудь отвечает: потому что в консоли (CLI) нет никакого DocumentRoot. Там вообще многих переменных нет. Например REQUEST_URI тоже не имеет смысла.
А зачем от руки? Есть же замечательная константа __DIR__, artoodetoo про неё писал. Вот относительно неё и надо прописывать: Код (PHP): $fp = fopen(__DIR__ . "/path/to/my/file", "w+");
Спасибочки! Добавлено спустя 1 минуту 58 секунд: Я всё прочитала! Спасибо за помощь! Добавлено спустя 6 минут 59 секунд: Всё работает с __DIR__