Задать вопрос
@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.

Напрямую если без крона по ссылке, отлично все срабатывает.
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой 30 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
при выполнении через крон (если только это не дерганье себя же через wget/curl) рабочая директория будет отличной от корня сайта. естественно, что .. ведет не туда, куда ожидается, и файл не находится.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽