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)