Задать вопрос
YardalGedal
@YardalGedal
yeah boy

Почему cron не читает файл?

Вот такой у меня есть код. Читает последние 5 топиков в сообществе и отсылает мне последнее сообщение из них, если оно ещё не было отправлено. Я как порядочный алешка чтобы не морочиться пишу просто в файл и все. Приведу лишь часть кода, остальная часть к вопрсоу отношения не имеет :)
<?php
...
for($i = 1; $i <= 5; $i++) {
$offset = $topics['response']['topics'][$i]['comments'] - 1;
$is1 = "https://api.vk.com/method/board.getComments?access_token=".$token."&group_id=GID&topic_id=".$topics['response']['topics'][$i]['tid']."&offset=".$offset."&count=1";
$topics1 = json_decode(file_get_contents($is1),true);
echo $topics1['response']['comments'][1]['date']."\r\n";
$t = $topics['response']['topics'][$i]['tid'];
echo file_get_contents("vk/".$t.".txt");
if($topics1['response']['comments'][1]['date'] != file_get_contents("vk/".$topics['response']['topics'][$i]['tid'].".txt")) {
file_put_contents("vk/".$topics['response']['topics'][$i]['tid'].".txt",$topics1['response']['comments'][1]['date']);
...
?>


Суть в том, что при попытке запуска кода из браузера он исправно проверяет файл и не отправляет мне сообщение, если unix-метка времени записанная в файл не равна полученной мной из vk api метке.
А вот когда срабатывает крон начинается всё самое интересное -- он просто каждый раз отправляет мне сообщение не видя файла, в который я пишу FPC'ом.
Вот цитата из логов крона:
1422817926
Warning: file_get_contents(vk/31014373.txt): failed to open stream: No such file or directory in /home/u850898830/public_html/board.php on line 15
  • Вопрос задан
  • 2681 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 3
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Дело, скорее всего, в том, что рабочая папка для крона '/home/u850898830/'
добавьте в начало скрипта:
chdir('/home/u850898830/public_html/');
Ответ написан
@Konkase
Нужно указывать полный путь до файла или чрутиться в директорию перед выполнение сценария или добавлять директорию в переменную окружения в кроне.
Ответ написан
Комментировать
@redlable47
У вас путь относительный"vk/..."
при выполнении из крона рабочий каталог другой, а согласно вашему пути скрипт ищет файл в рабочей директории, нужно либо использовать абсолютный путь, либо указать рабочей нужную директорию
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы