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
  • Вопрос задан
  • 2667 просмотров
Решения вопроса 3
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Дело, скорее всего, в том, что рабочая папка для крона '/home/u850898830/'
добавьте в начало скрипта:
chdir('/home/u850898830/public_html/');
Ответ написан
@Konkase
Нужно указывать полный путь до файла или чрутиться в директорию перед выполнение сценария или добавлять директорию в переменную окружения в кроне.
Ответ написан
Комментировать
@redlable47
У вас путь относительный"vk/..."
при выполнении из крона рабочий каталог другой, а согласно вашему пути скрипт ищет файл в рабочей директории, нужно либо использовать абсолютный путь, либо указать рабочей нужную директорию
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы