@WebforSelf

Крон выдает ошибку Fatal error: require_once() при выполнении?

Странная ошибка происходит при попытке выполнить команду в кроне.

есть сайт и файл php который выполняется по cron

site.ru/test/file.php
Тут находится файл крона

В файл добавил для теста

Подключение к основному файлу

<?php
require_once('../api/Simpla.php');
echo "все работает";


Получается выдает ошибку

Fatal error: require_once(): Failed opening required '../api/Simpla.php' (include_path='.:/usr/share/php')


Хотя файл физически лежит в папке
Site.ru/api/Simpla.php

Но если файл забираю из папки test перемещаю файл file.php в корневую директорию

site.ru/file.php

и в файле

<?php
require_once('api/Simpla.php');
echo "все работает";


Путь указываю так, то все работает! Бред какой то, ведь если я из директории обращаюсь к файлу то

../ это единственный вариант попасть в папку выше и уже оттуда в api.

Напрямую если без крона по ссылке, отлично все срабатывает.
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
DevMan
@DevMan
при выполнении через крон (если только это не дерганье себя же через wget/curl) рабочая директория будет отличной от корня сайта. естественно, что .. ведет не туда, куда ожидается, и файл не находится.

решение:
костыльное: в кроне перед вызовом скрипта сменить рабочую директорию и использовать относительные пути.
нормальное: работать с автоматически определяемыми абсолютными путями: __DIR__, __FILE__, dirname()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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