hummingbird
@hummingbird

Fatal error: require_once(): Failed opening required?

Доброго времени суток!

Имеется файл init.php. Его путь:
/var/www/user/data/www/site.ru/engine/init.php

В init.php имеется строка:
require_once dirname ( __FILE__ ) . '/ac/include/modules/list.php';


Путь до файла list.php:
/var/www/user/data/www/site.ru/ac/include/modules/list.php


Ошибка:
Fatal error: require_once(): Failed opening required '/var/www/user/data/www/site.ru/ac/include/modules/list.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/user/data/www/site.ru/engine/init.php on line 478


Что вызывает данную ошибку?
  • Вопрос задан
  • 59644 просмотра
Пригласить эксперта
Ответы на вопрос 5
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
у вас путь указан абсолютный, а не относительный. он идет от корня файловой системы. Тогда уж так как-то:
require_once __DIR__ . '/folder1/folder4/list.php';
Ответ написан
Приведите полный текст ошибки, возможно не хватает прав доступа к папке folder4.
Ответ написан
Комментировать
Sild
@Sild
какая структура каталога?
dirname ( __FILE__ ) . "/folder1/folder2/folder3/index.php" - странное описание для местонахождения файла.

когда вы делаете
require_once dirname ( __FILE__ ) . "/folder1/folder4/list.php";
в скрипте, находящимся по адресу
dirname ( __FILE__ )  . "/folder1/folder2/folder3/index.php"

фактически вы получаете файл
dirname(__FILE__) . "/folder1/folder2/folder3/folder1/folder4/list.php"

ведь dirname(__FILE__) получает директорию исполняемого скрипта, если я ничего не путаю. Вы уверены, что этого и добивались?

ну и второй вариант - права на чтение и исполнение у list.php
Ответ написан
На сколько я понял вы из
/folder1/folder2/folder3/index.php
пытаетесь получить
/folder1/folder4/list.php ,
PHP ищет list.php в
/folder1/folder2/folder3/folder1/folder4/list.php
Попробуйте:
require_once __DIR__ . "/../../folder4/list.php";
Ответ написан
Комментировать
leonid-lapidus
@leonid-lapidus
Попробую предположить:
1.
Имеется файл init.php. Его путь:
/var/www/user/data/www/site.ru/engine/init.php

2.
require_once dirname ( __FILE__ ) . '/ac/include/modules/list.php';


=> полный путь требуемого файла:
/var/www/user/data/www/site.ru/engine/ac/include/modules/

А файл, по вашим словам лежит в:
/var/www/user/data/www/site.ru/ac/include/modules/ (не хватает engine)

а можно сюда результат команд:

$ cd /var/www/user/data/www/site.ru/engine/ac/include/modules/
$ ls -l

и
$ cd /var/www/user/data/www/site.ru/ac/include/modules/
$ ls -l

Заодно проверьте регистр расширения файла. Может там PHP, а не php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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