Cron задача. Проблема с запуском скрипта
Pre Scriptum. На пхп я не кодил от слова совсем.
Написал небольшой скрипт на php для парсинга отзывов с сайта яндекса. Скрипт подключает библиотеку phpQuery, отправляет запрос, дальше foreach - ом пробегаюсь по массиву из dom и создаю json файл.
В случае если появились новые отзывы, то скрипт сравнивает их с записанными отзывами и если их нет, то дописывает в конец файла.
Инклуд билиотеки: include './phpQuery-onefile.php';
Запрос к яндексу: $html = file_get_contents($url);
Чтение существующего файла: $output_file = file_get_contents($out_path);
И запись: file_put_contents($out_path, json_encode($result, JSON_UNESCAPED_UNICODE));
Out_Path: $out_path = './public_html/reviews.json';
Разрабатывал на open_server, но также проверил скрипт на xampp. На локалке все отлично работает, файл дописывается.
Далее перенес скрипт на хостинг создал cron задачу. Файл скрипта и библиотеки закинул в корневую папку, а файл reviews.json закинул в public_html. (т.к. к json буду обращаться из сайта)

При запуске скрипта он падает с ошибкой exit 255. Обратился в службе поддержки, но там ничем не смогли помочь. Хостинг - beget. Аналогично закинул, кхм..., на timeweb - там вообще не пишутся ошибки ну и файл не обновляется.
Подскажите пожалуйста, в чем может быть проблема и где косяк?
UPD. Beget сказали, что проблем с запросами на сторонние ресурсы нет, а в логах появляется ошибка:
Fatal error: Uncaught Error: Class 'phpQuery' not found in...
в этой строке: $dom = phpQuery::newDocument($html);
Что с ней не так - надо по-другому использовать пространство имен ? или в cron нет возможности заинклудить библиотеку?
Спасибо!
Ответы (1 шт):
Всегда используйте абсолютные пути для include/require:
require_once __DIR__ . '/phpQuery-onefile.php';
При запуске из CRON(и не только), текущая директория(./) не та, какую вы ожидаете.