2.8.2.2. Ошибка «Fatal error: require*(): Failed opening required»

При вызове файлов для подключения в текущий скрипт может возникать ошибка:

Fatal error: require*(): Failed opening required ~/example.com/www/example.php in /home/example/example.com/www/somefile.php
  • require*(): — функция, с помощью которой скрипт обращался к файлу. Вместо require могут быть require_once, include и т. д.
  • Failed opening required ~/example.com/www/example.php — причина ошибки. В данном случае сообщается, что файл ~/example.com/www/example.php не может быть найден по указанному пути или к нему нет доступа.
  • in /home/example/example.com/www/somefile.php — файл, из которого выполнялось обращение к другому файлу. Эта информация может быть полезна для отладки.

Наиболее распространённые причины ошибки:

  • Отсутствие вызываемого файла. Наиболее частой причиной является именно отсутствие вызываемого файла. Проблема может наблюдаться при копировании, перемещении или других действиях с файлами сайта. Также иногда файлы могут быть удалены как пользователем, так и скриптами самих сайтов, из-за чего и будет возникать такая ошибка.
  • Неправильный путь к вызываемому файлу. В случае возникновения такой проблемы стоит сравнить путь к файлу, который указан в тексте ошибке, и реальный путь. Важно учесть, что в путях могут встречаться элементы, которые могут запутать при определении пути, например:
    • /./ — текущий каталог. Можно просто игнорировать, так как он никак не влияет на путь.
    • /../ — родительский каталог. Часто используется в скриптах при формировании относительных путей. К примеру, путь example.com/www/include/../vendor/somefile.php фактически является путём example.com/www/vendor/somefile.php.
    • В Linux регистр имён файлов и каталогов имеет значение. Например, если скрипт попытается обратиться к файлу по имени SomeFile.php, а по факту в файловой системе файл хранится под именем somefile.php, то возникнет ошибка, что искомый файл не найден. В отличии от Windows, файлы SomeFile.php и somefile.php это два разных файла.
  • Неправильные права к искомому файлу. Если права файла не позволяют его чтение группе, то он не будет открыт другим скриптом. Для сброса прав рекомендуется использовать восстановление прав по умолчанию. Для корректной работы следует использовать права 640 для файлов и 750 для каталогов.
Содержание

    (1)